Incompatibilidad de búsqueda en el formulario

Tengo un formulario llamado FormTrabajadores en Accesos 2007

Y me crea incompatibilidades entre búsqueda

Cree un botón de búsqueda al click que busca los trabajadores de chapa y metal con una macro.

Siendo este el código

Privarte Sub Comando256_Click()

On Error GoTo Err_Comando246_Click

       Dim stDocName = "Busca_chapa_metal"

       DoCmd.RunMacro stDocName

Exit_Comando246_Click:

       Éxitos Sub

Err_Comando246_Click:

       MsgBox Error.Descripcion

       Resume Exit_Comando246_Click

End_Sub

Y la macro asociada es

Acción: Abrir formulario

Nombre formulario: FormTrabajadores

Vista; Formulario

Nombre del filtro: Bus_chapa_metal

Conducción where: no pongo nada

Modo datos: no pongo nada

Modo de la ventana: Normal

Bueno, está macro con consulta asociada funciona como la seda, me filtra perfectamente los datos de los trabajadores y a su subformulario asociado de las horas trabajadas por día.

El problema viene cuando creo la búsqueda desde un cuarto de texto también desde el formulario FormTrabajadores.

Cuando creo está, que me la habéis pasado en este prestigioso foro.

En el evento, después de actualizar del cuadro de texto en el formulario FormTrabajadores

Prívate Sub txt1_AfterUpdate()

If txt1 <>"" Then 'si no está vacío muestra campo de texto

Me.RecordSource ="Select  * from [Trabajadores_Todos] where [Trabajadores] like '*"& text1 & "*'"

End If

If Nz (text1, "") = ""Then 'si el texto está vacío

MsgBox "ingresé texto de búsqueda", vbOKOnly, "ATENCION"

txt1.SetFocus 'devuelve el enfoque del cuadro

Ene If

If Me.RecordsetClone.RecordCount = 0 Then 'si no encuentra nada

MsBox "no se encuentra el trabajador", vbOKOnly, "AVISO"

Me Refresh

End If

Exit Sub

Ene Sub

Visto todo esto, la pregunta es.

Porque la macro queda inutilizada cuando creo el cuadro de texto de búsqueda.

Puedo buscar, pero al pulsar el botón macro sale el formulario vacío.

¿Cómo lo puedo arreglar?

1 respuesta

Respuesta
2

Te digo lo que haría. En el evento después de actualizar del cuadro de texto(voy a llamarlo Texto8) pondría, simplemente

Private Sub Texto8_AfterUpdate()
If Nz(DCount("*", "clientes", "pais like ""*""&[texto8]&""*""")) = 0 Then
MsgBox "No hay registros", vbokonly,"Que lo sepas"
Else
Me.RecordSource = "select * from clientes where pais like ""*""&'" & Me.Texto8 & "'&""*"""
End If
End Sub

Así, si en el cuadro de texto escribes LE, te sacará los registros de paises como aLEmania, paLEstina, etc.

Hola de nuevo, al escribir el código me dice que se espera un paréntesis, en la primera línea

He escrito esto, suponiendo que trabajadores es la tabla y Trabajadores-_Todos la consulta

Private Sub Texto606_AfterUpdate()
If Nz(DCount("*", "Trabajadores", "Trabajadores_Todos ""*""&[Texto606]&""*"")) = 0 Then

MsgBox "No hay registros", vbOKOnly, "Que lo sepas"
Else
Me.RecodSource = "Select*from Trabajadores where Trabajadores_Todos like ""*""&'" & Me.Texto606 & "'&"""
End If

End Sub

Que puede fallar.

Saludos

¿La macro está bien?

Se podría copilar en código, para agilizarla

Gracias

Si tengo el formulario Clientes, basado en la tabla del mismo nombre, al que he añadido un cuadro de texto, Texto8

A la derecha puedes ver que los hay de todos los países.

Si en el cuadro de texto escribo yyy y pulso Enter

Pero si escribo, por ejemplo, UE

Me saca los países sUEcia, venezUEla, y para que no haya error en el código, que es el mismo de antes te lo pongo como imagen

Hola

No encontraba el porqué no había manera de ejecutar la búsqueda, he creado tu pequeño ejemplo y funciona perfectamente, desde la tabla o la consulta,

Muy agradecido

Saludos

Carlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas