Condición en un formulario de Access

Resuelto
faon Mensajes publicados 16 Estado Miembro -  
 jluc -
Buenas noches,
Soy nuevo en este sitio y tengo una pregunta que hacer
Estoy creando una base de datos y tengo un problema sobre un campo
Lo explico:
Tengo tres campos: Asignación, N° cuenta bancaria y N° cuenta bancaria(R)
Si tengo un número de cuenta bancaria que aparece en uno de los dos campos "cuenta", el campo Asignación debe permanecer vacío.
Si no tengo ninguna cuenta en uno de los dos campos "cuenta", debe devolverme el texto "Asignación" en el campo "Asignación".
Llevo días buscando y no encuentro la solución.
¿Quién puede ayudarme? Gracias de antemano
Configuración: OFFICE 2000 WINDOWS 97

9 respuestas

zenon Mensajes publicados 729 Estado Miembro 180
 
Bueno, no importa en mi opinión: es una cuestión de presentación.

En cambio, 100 campos para una tabla, es mucho...
No conozco en absoluto el tipo de tus datos. ¿Estás seguro de no confundir campos y registros (lo siento, no te lo tomes a mal mi pregunta...)?.

¿Por qué quieres exportar los resultados a Word?

Los informes no están mal en Access. No requieren manipulación una vez que han sido diseñados y permiten aplicar filtros o agrupamientos más fácilmente que los campos de formulario en Word.
1
faon Mensajes publicados 16 Estado Miembro
 
Hola,
No, no te preocupes, no me lo tomo a mal, sobre todo de parte de alguien que sabe mucho más que yo sobre el tema.
Sí, tengo 100 campos en una única tabla. Debería decir que tenía, porque como era demasiado pesado, empecé de nuevo (es practicando que se vuelve experto).
Mi proyecto se basa en siete tablas y un formulario basado en consultas.
Las personas que tengo a mi cargo reciben a personas con discapacidad y deben completar un formulario completo. Dicho formulario sirve de punto de partida para completar un expediente lleno de documentos, por eso quería fusionarlo con un archivo de texto de Word. Seguro que tienes razón, no he intentado hacerlo con un informe.
¿Existe una función que calcule el primer día del mes anterior?
Gracias por tu amabilidad al seguirme paso a paso.
0
faon Mensajes publicados 16 Estado Miembro
 
Aquí está el motivo
fecha de la factura 10/05/2004; fecha del vehículo antiguo 25/08/2002
de ahí revisión del 01/08/2002 al 31/07/2005
retiro 10/05/2004 (=fecha de la factura)
período a revisar del 01/06/2004 al 31/07/2005, es decir, 14 meses

el problema se encuentra en la fecha del 01/08/2004, todas las demás fórmulas las he encontrado.

Todas las fechas son campos.
Espero haberme explicado correctamente.
0
Lupin
 
Hola,

Sugerencia:

Une los 2 eventos "After Change" en la misma función.

Sub [N° cuenta bancaria]_AfterChange
Validación
End Sub
Sub [N° cuenta bancaria(R)]_AfterChange
Validación
End Sub

Function Validación
If (([N° cuenta bancaria] <> "") Or ([N° cuenta bancaria(R)] <> "")) Then
[Asignación].Value = ""
Else
[Asignación].Value = "Asignación"
End If
End Function

¿Esto cumple con tus expectativas?

Lupin

Lupin
0
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Hola Lupin,

como he notado que dominas VBA, ¿podrías decirme si es factible lo que estoy tratando de hacer?

Aquí está el enlace http://tinyurl.com/mk9f6


Gracias de antemano,

lami20j
0
faon Mensajes publicados 16 Estado Miembro
 
Gracias por tu mensaje, pero ¿cómo puedo insertar la función after change en mi campo? No encuentro esa función.
Gracias
0
zenon Mensajes publicados 729 Estado Miembro 180
 
Hola,

Lupin no parece estar aquí...

En mi opinión, debes agregar la referencia a la función propuesta en las propiedades de los campos en un formulario...

(Pero según tu publicación, no estoy seguro de que estés en eso).

Si es así, en modo creación, haces clic derecho en el campo en cuestión, eliges propiedades y luego, en la pestaña de evento, AfterUpdate, eliges "procedimiento de evento" y te encontrarás en la ventana de VB donde escribes el código propuesto.

Luego, debes escribir el módulo en el que se debe copiar la función propuesta.

Si estás en una tabla, no es posible... pero puedes escribir una consulta de actualización que "corregirá" tus datos de una vez.

Espero que te ayude
(lo siento, Lupin, por "haber pisado tus terrenos"...
0
faon Mensajes publicados 16 Estado Miembro
 
Gracias a ti también Zenon, el mensaje que le envié a Lupin también es para ti.
0
faon Mensajes publicados 16 Estado Miembro
 
el problema es que ya tengo un procedimiento de evento en After Update.
De hecho, he instalado un programa que verifica la exactitud de la cuenta bancaria y no sé cómo ponerlo en otro lugar.
0
jluc
 
vous parlez de la mise à jour après, mais désolé, je ne vois pas où.
0
Lupin
 
Hola a todos,

para Zenon, no hay culpa, estamos aquí para compartir,
y no pretendo conocerlo todo ni entenderlo todo. Al contrario, gracias por haber respondido.

Ofrezco la ayuda que puedo con el tiempo que tengo. No siempre lo tengo. Quizás a otros miembros de ccmm no les guste este tipo de intervención, pero por mi parte, el objetivo
siempre es ayudar a la persona que lo solicita y sin lugar a dudas [ la unión hace la fuerza ].

Dicho esto, veía exactamente las cosas como las has descrito.
Por supuesto, no conozco las habilidades de Faon en VBA.

Por ahora, no puedo ir más allá porque debo ponerme a trabajar. Si estas respuestas no son claras, seguiré el hilo para ayudarte, Faon.

p.d. Lami20j, voy a echar un vistazo a tu hilo.

@+
Lupin
0
faon Mensajes publicados 16 Estado Miembro
 
Gracias por tu correo y es muy amable de tu parte, sobre todo porque las personas a las que me dirigí antes de inscribirme en este sitio eran del tipo "yo sé, pero tú hazlo solo".

En cuanto a Access, asistí al curso pero mi formación se basó en lo esencial (tablas, formularios, consultas, etc...) pero en lo que respecta a VBA, lo estoy descubriendo por mí mismo a medida que intento crear aplicaciones.
Y como me gusta Access, quiero avanzar más.
Gracias de nuevo.
0
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Buenas noches y gracias Lupin,

lami20j
0
Lupin > faon Mensajes publicados 16 Estado Miembro
 
Hola,

Para hacerlo simple,

Primer Piso
Una TablaA
Una ConsultaA que engloba la tabla A
Un Formulario que apunta a la consulta
Segundo piso Algunos controles de opción múltiple en uno, dos o tres subformularios
Algunas líneas de VBA

Como explicó Zenon, en modo diseño hay una ventana que contiene las propiedades del objeto, pestaña Evento, deberías encontrar el método "After Update", en español se diría "Después de Actualizar".
Deberías aterrizar en el código de las rutinas que te designé en mi ejemplo.

Lupin
0
faon Mensajes publicados 16 Estado Miembro > Lupin
 
Hola y mil disculpas, he dejado caer esto unos días, desanimado.
Solo me queda esta porquería de campo "N° cuenta financiera", "N° cuenta financiera(R)" y "Asigne" de mi formulario para terminar mi aplicación y estoy perdido.
En los 2 primeros mencionados, he retomado la macro en el procedimiento de evento "After Update" del sitio www.fundp.ac.be/jmlambert/vba/Notes1-Exemples-2.html. Aunque introduzca un n° de cuenta correcto, me devuelve cada vez que la cuenta bancaria es incorrecta.
Por lo tanto, no sé cómo escribir un procedimiento de evento ni una función para mi campo de asignación.
Soy un inútil en vba, los consejos bien fundamentados serían muy bienvenidos.
Gracias de antemano.
0
zenon Mensajes publicados 729 Estado Miembro 180 > faon Mensajes publicados 16 Estado Miembro
 
Buenas noches,


No entiendo dónde está el problema.

Con campos de texto independientes, la técnica propuesta por Lupin funciona perfectamente... (no es imprescindible escribir un módulo)

¿Lo has probado en un formulario independiente?

Quizás el problema esté en la actualización del campo "asignación". Si muestras el resultado en la sección detalle de un formulario y se trata de un campo de texto independiente, todos los registros tomarán el mismo valor cuando ejecutes el código en uno de ellos, ya que este control independiente no se refiere a datos de la tabla subyacente. ¿Ese es el problema?

Para evitar este tipo de problemas, lo más sencillo sería agregar un campo "asignación" a la tabla y ejecutar una consulta de actualización para todos los registros existentes. Puedo explicarte cómo hacerlo si te interesa...

Luego, al añadir o actualizar registros, el código propuesto por Lupin tomará el control sin problemas.

Si no quieres "contaminar" tu tabla con datos redundantes, puedes basar el formulario en una consulta y crear temporalmente el campo asignación y luego ejecutar una nueva consulta que lo actualice.

También puedes hacer un bucle sobre todos los registros para definir el valor reutilizando parte del código de Lupin...
y creando temporalmente el control.

En fin, no faltan las soluciones...
¿Qué opinas? Es difícil ayudarte sin conocer la estructura de tus datos.
0
zenon Mensajes publicados 729 Estado Miembro 180
 
Ve a ver en la ayuda del lado de SerieDate.
No tengo tiempo para probar en este momento...
0
faon Mensajes publicados 16 Estado Miembro
 
Buenas noches Zenon,
He encontrado lo que necesitaba en Excel (Fin.Mois), funciona en Excel pero no hay manera de activar la función en Access, me devuelve #Nombre?#. Utilidad activada. ¿Qué hago? Gracias por tu respuesta. Me gustaría, si es posible, crearla como función.
0
zenon Mensajes publicados 729 Estado Miembro 180
 
Raro, no funciona en mi computadora tampoco, incluso después de cargar la DLL "o???" de la que habla la ayuda... y tampoco funciona en Excel... ¿dónde está Bill??

Escribí una 'pequeña función:

Private Sub ...
Dim X As Date
For X = Date To X = Date - 31 Step -1
If Month(X) = Month(Date) - 1 Then
ChampIndépendantADéfinir = X
Exit For
End If
Next X
End Sub

En mi computadora, funciona.
0
matilde
 
Hola a todos,
En mi formulario, tengo un campo en el que debo ingresar un código, por ejemplo, 1000, y cuando se ingresa este código, me gustaría que en otro campo aparezca automáticamente el término correspondiente a ese código.
Tengo una tabla con ambos campos en cuestión. Hay una columna con el código y otra con las correspondencias, por ejemplo, 1000 corresponde a vivienda, 8180 a cabaña, etc.
No sé nada de Visual Basic...
¿Quién puede ayudarme?
Muchas gracias de antemano.
0
Seb
 
Bonjour,

Escribir un filtro en VBA para la apertura de un formulario está bien.
Por otro lado, no sé cómo decirle que mantenga este filtro todo el tiempo que esté en el formulario y en el que haga otros filtros.

Me explico con un ejemplo:

Abro un formulario f_Client ordenado por la ciudad de origen del cliente.
En este formulario quiero hacer "sub-filtros" a través de listas desplegables (edad, nombre...)

Hasta aquí no hay problema, los filtros se realizan bien.

Excepto que si decido desfiltrar mis sub-filtros, desfiltra todo y me muestra la totalidad de los clientes de todas las ciudades y ya no solo aquellos que fueron seleccionados al principio.

¿Cómo puedo hacer para que un filtro inicial sea inalterable mientras esté en el formulario?

Gracias de antemano por sus respuestas.
Seb
0
Seb
 
M... no he publicado en el lugar correcto, perdón, estoy empezando en los foros...
No sé cómo borrar mi mensaje, así que lo siento.
0