Búsqueda en formulario
Hola experto, tengo un formulario en el que he incluido un combo independiente (cmbBuscar), un campo independiente (txtBuscar) y un botón de comando (cmdBuscar).
La lista del combo está limitada a los campos del formulario, en el campo introduzco los caracteres que deseo buscar y lo ejecuto con el botón.
El código que tiene el botón de comando es el siguiente:
Private Sub CmdBuscar_Click()
On Error GoTo Err_CmdBuscar_Click
Dim sql As String
Dim busq As String
If txtBuscar = Null Then
Me.RecordSource = "Propietarios"
Me.Requery
Me.Recordset.MoveLast
End If
If txtBuscar <> "" Then
busq = "Propietarios."
busq = busq & [Forms]![Propietarios]![cmbBuscar]
sql = "SELECT Propietarios.DNI, Propietarios.Titular, Propietarios.Nº_Cta, Propietarios.Telefono, Propietarios.Movil, Propietarios.D_Notificacion, Propietarios.CP_Notificacion, Propietarios.L_Notificacion, Propietarios.P_Notificacion, Propietarios.Email, [Propietarios]![¿Debe?], Propietarios.Comunica, Propietarios.Otro_Dom, Propietarios.Estado FROM Propietarios WHERE ((("
sql = sql & busq
sql = sql & ") Like '*' & [Forms]![Propietarios]![txtBuscar] & '*'));"
Me.RecordSource = sql
Me.Requery
Me.Recordset.MoveLast
End If
txtBuscar = Null
cmbBuscar = Null
Exit_CmdBuscar_Click:
Exit Sub
Err_CmdBuscar_Click:
MsgBox Err.Description
Resume Exit_CmdBuscar_Click
End Sub
El caso es que cuando ejecuto la primera búsqueda dejando los campos de criterio vacíos me devuelve bien el resultado (143 registros). En la siguiente búsqueda le digo en el combo que busque por el campo Titular y en el campo texto GARR y también me lo hace correcto (5 registros). Sin embargo si realizo una nueva consulta dejando los campos de criterio de búsqueda vacíos me sigue manteniendo los registros de la búsqueda anterior (5) cuando deberían ser 143 como hace en la primera búsqueda.
¿Hay algo en el código que esté haciendo mal? O ¿Tengo qué añadirle algo que no sé?
Gracias
La lista del combo está limitada a los campos del formulario, en el campo introduzco los caracteres que deseo buscar y lo ejecuto con el botón.
El código que tiene el botón de comando es el siguiente:
Private Sub CmdBuscar_Click()
On Error GoTo Err_CmdBuscar_Click
Dim sql As String
Dim busq As String
If txtBuscar = Null Then
Me.RecordSource = "Propietarios"
Me.Requery
Me.Recordset.MoveLast
End If
If txtBuscar <> "" Then
busq = "Propietarios."
busq = busq & [Forms]![Propietarios]![cmbBuscar]
sql = "SELECT Propietarios.DNI, Propietarios.Titular, Propietarios.Nº_Cta, Propietarios.Telefono, Propietarios.Movil, Propietarios.D_Notificacion, Propietarios.CP_Notificacion, Propietarios.L_Notificacion, Propietarios.P_Notificacion, Propietarios.Email, [Propietarios]![¿Debe?], Propietarios.Comunica, Propietarios.Otro_Dom, Propietarios.Estado FROM Propietarios WHERE ((("
sql = sql & busq
sql = sql & ") Like '*' & [Forms]![Propietarios]![txtBuscar] & '*'));"
Me.RecordSource = sql
Me.Requery
Me.Recordset.MoveLast
End If
txtBuscar = Null
cmbBuscar = Null
Exit_CmdBuscar_Click:
Exit Sub
Err_CmdBuscar_Click:
MsgBox Err.Description
Resume Exit_CmdBuscar_Click
End Sub
El caso es que cuando ejecuto la primera búsqueda dejando los campos de criterio vacíos me devuelve bien el resultado (143 registros). En la siguiente búsqueda le digo en el combo que busque por el campo Titular y en el campo texto GARR y también me lo hace correcto (5 registros). Sin embargo si realizo una nueva consulta dejando los campos de criterio de búsqueda vacíos me sigue manteniendo los registros de la búsqueda anterior (5) cuando deberían ser 143 como hace en la primera búsqueda.
¿Hay algo en el código que esté haciendo mal? O ¿Tengo qué añadirle algo que no sé?
Gracias
4 respuestas
Respuesta de smanero
1
Respuesta de jj77
1
Respuesta de eliellop
1
Respuesta de Carlos Juan Cantera Arranz