Problema cuando filtro con vba en Access 2010

He creado dos formularios con los siguientes datos

Formulario “Clientes” con los siguientes datos Nombreyapellido tipo testo; fecha_nacimiento; tipo fecha/hora, edadad. Formulario “HojaMovimiento” con los campos dia_Movimiento tipo fecha/hora, NombreApellido tipo texto, datosmovimientos tipo texto, fechamov tipo fecha/hora.

Ahora bien cuando filtro desde el “Cliente” por vba para que me abra el formulario hojamovimiento con el cliente que yo tengo seleccionado en nombreapellido. Me abre el formulario en blanco. Pero si la condición es de tipo fecha me lo abre bien. La Pregunta es COMO HACER PARA QUE ME FILTRE POR NOMBREYAPELLIDO.

Los comando que he utilizado son:

Este me abre el formulario en blanco

DoCmd.OpenForm "frm_hojamovimiento", , , " nombreapellido =  ' " & Me.TXT_APELLIDO_Y_NOMBRE & "'"

Me lo abre bien

 DoCmd.OpenForm "frm_hojamovimiento", , , " fechamov =  #" & Me.TXT_FECHA & " # "

1 respuesta

Respuesta
2

Miguel: Como primer paso y para evitar problemas de Nombres de Controles al TXT_APELLIDO.., Cambia el Nombre a porEjemplo TxtApellNomb (Sin espacios)

Después veo un espacio entre la primera comilla simple y la doble. Ignoro si puede ser eso.

Entonces pones (aprecio que el tuyo no está mal, salvo lo que te comento)

DoCmd.OpenForm "[Frm_HojaMovimiento]",,,"NombreApellido = '" & Me.TxtApellNomb & "'"

Pon entre corchetes el Nombre del Formulario por si acaso. Ya me contarás.

Hola Jacinto, gracias por responderme, hice algunas modificaciones como el del [] pero me da error. También modifique los espacios y los nombre y ahora me aparece para que introduzca el valor del parámetro y se lo agrego pero me sigue abriendo el formulario en blanco.

Miguel: Si te pide el Nombre del parámetro, es que no encuentra "algo". Mira si es que tienes una consulta con algún filtro o que el Formulario no se llame así. Si quieres repetir el código con el que te has quedado, y una vista de diseño del origen de datos del Formulario, posiblemente me de alguna pista. Un saludo >> Jacinto

Como lo envío

Miguel: En principio pon el código aquí y pega alguna imagen si lo crees oportuno.

Un saludo >> Jacinto

Formulario clientes

Private Sub Seguimiento_Click() ‘es del botón hoja de seguimiento

DoCmd.OpenForm "Seguimiento", , , "ApellidosyNombres = ' " & Me.TXTAPELLNOMB & " ' "

End Sub

Formulario seguimiento

Gracias

Miguel: Aquí en España ya es un poco tarde. Le doy una mirada mañana y te comento.

Entre tanto, en una copia, simplemente cambia el ComboBox del Formulario de Seguimientos por un TextBox con ese nombre y haz la prueba. Asegura que el ComboBox del Formulario de Clientes sea realment TXTAPELLNOMB. En el procedimiento y para evitar anomalías >>

Private Sub Seguimiento_Click() ‘es del botón hoja de seguimiento
If Not IsNull(Me.TXTAPELLNOMBRE) And Me.TXTAPELLNOMBRE <> "" Then
   DoCmd.OpenForm "Seguimiento", , , "ApellidosyNombres = ' " & Me.TXTAPELLNOMB & " ' "
Else
   MsgBox "El Combo de Apellidos y Nombre ha de tener un valor",vbCritical,"FALTA VALOR"
End If
End Sub

Un saludo >> Jacinto

Muchísimas gracias

Lo hago así pero me sale el formulario en blanco

Miguel: Me temo que va ser difícil resolver el problema sin tener delante los objetos, porque sin ello iremos alargando y posiblemente no lo resolvamos.

Entonces, si no tienes datos personales o confidenciales, y si los tienes puedes dejar algunos inventados, y poner tu BD aquí en un enlace o enviármela a [email protected].

Con ello creo que la solución será más asequible. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas