Problema con búsquedas
Hola capos de la programación: estoy segura que me van a poder ayudar con mis dudas.
Procedo a explicar, como se hace para hacer una búsqueda desde un cuadro de texto, en un formulario de clientes, escribiendo solo un par de letras y que muestre en otro formulario, en un cuadro de lista todos los nombres de clientes que empiezen con esas letras, creo que es una especie de filtrado.
Por ejemplo: quiero buscar todos los clientes que empiezen con "M" ó "Mar" y que en el otro formulario, en el cuadro de lista, aparezcan todos los clientes que se llamen Marcos, Maria, Martin, etc.
Pra más información estoy trabajando desde Access insertando código de Visual Basic cuando es necesario, como en éste caso. Espero que me haya explicado bien.
Desde ya muchas gracias, por ayudarme a resolver ésta incógnita.
Procedo a explicar, como se hace para hacer una búsqueda desde un cuadro de texto, en un formulario de clientes, escribiendo solo un par de letras y que muestre en otro formulario, en un cuadro de lista todos los nombres de clientes que empiezen con esas letras, creo que es una especie de filtrado.
Por ejemplo: quiero buscar todos los clientes que empiezen con "M" ó "Mar" y que en el otro formulario, en el cuadro de lista, aparezcan todos los clientes que se llamen Marcos, Maria, Martin, etc.
Pra más información estoy trabajando desde Access insertando código de Visual Basic cuando es necesario, como en éste caso. Espero que me haya explicado bien.
Desde ya muchas gracias, por ayudarme a resolver ésta incógnita.
Bueno yo tengo una herramienta muy buena que creo que te va a servir, filtra por la primera letra, pero tu lo puedes manejar a tu empeño.
Te pongo el codigo entero, no se si e aclararas, pero si tienes alguna duda me escribes y te mando un ejemplo.
Option Compare Database
'------------------------------------------------------------
' ALFA_CLIENTES_Alpha_Buttons
'
'------------------------------------------------------------
Function ALFA_CLIENTES_Alpha_Buttons()
On Error GoTo ALFA_CLIENTES_Alpha_Buttons_Err
With CodeContextObject
' Adjunta al formulario Lista de teléfonos de clientes.
' Adjunta al evento Después de actualizar del grupo de opciones FiltrosNombreCompañía.
If (.FiltrosNombreCompañía = 1) Then
' Filtra las compañías cuyos nombres empiezan con A, À, Á, Â, Ã o Ä.
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[AÀÁÂÃÄ]*"""
End If
If (.FiltrosNombreCompañía = 2) Then
' B
DoCmd.ApplyFilter "", "[CLIENTE] Like ""B*"""
End If
If (.FiltrosNombreCompañía = 3) Then
' C o Ç
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[CÇ]*"""
End If
If (.FiltrosNombreCompañía = 4) Then
' D
DoCmd.ApplyFilter "", "[CLIENTE] Like ""D*"""
End If
If (.FiltrosNombreCompañía = 5) Then
' E, È, É, Ê, o Ë
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[EÈÉÊË]*"""
End If
If (.FiltrosNombreCompañía = 6) Then
' F
DoCmd.ApplyFilter "", "[CLIENTE] Like ""F*"""
End If
If (.FiltrosNombreCompañía = 7) Then
' G
DoCmd.ApplyFilter "", "[CLIENTE] Like ""G*"""
End If
If (.FiltrosNombreCompañía = 8) Then
' H
DoCmd.ApplyFilter "", "[CLIENTE] Like ""H*"""
End If
If (.FiltrosNombreCompañía = 9) Then
' I, Ì, Í, Î o Ï
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[IÌÍÎÏ]*"""
End If
If (.FiltrosNombreCompañía = 10) Then
' J
DoCmd.ApplyFilter "", "[CLIENTE] Like ""J*"""
End If
If (.FiltrosNombreCompañía = 11) Then
' K
DoCmd.ApplyFilter "", "[CLIENTE] Like ""K*"""
End If
If (.FiltrosNombreCompañía = 12) Then
' L
DoCmd.ApplyFilter "", "[CLIENTE] Like ""L*"""
End If
If (.FiltrosNombreCompañía = 13) Then
' M
DoCmd.ApplyFilter "", "[CLIENTE] Like ""M*"""
End If
If (.FiltrosNombreCompañía = 14) Then
' N
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[NÑ]*"""
End If
If (.FiltrosNombreCompañía = 15) Then
' O, Ò, Ó, Ô, Õ o Ö
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[OÒÓÔÕÖ]*"""
End If
If (.FiltrosNombreCompañía = 16) Then
' P
DoCmd.ApplyFilter "", "[CLIENTE] Like ""P*"""
End If
If (.FiltrosNombreCompañía = 17) Then
' Q
DoCmd.ApplyFilter "", "[CLIENTE] Like ""Q*"""
End If
If (.FiltrosNombreCompañía = 18) Then
' R
DoCmd.ApplyFilter "", "[CLIENTE] Like ""R*"""
End If
If (.FiltrosNombreCompañía = 19) Then
' S o (S hacek)
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[S]*"""
End If
If (.FiltrosNombreCompañía = 20) Then
' T
DoCmd.ApplyFilter "", "[CLIENTE] Like ""T*"""
End If
If (.FiltrosNombreCompañía = 21) Then
' U, Ù, Ú, Û o Ü
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[UÙÚÛÜ]*"""
End If
If (.FiltrosNombreCompañía = 22) Then
' V
DoCmd.ApplyFilter "", "[CLIENTE] Like ""V*"""
End If
If (.FiltrosNombreCompañía = 23) Then
' W
DoCmd.ApplyFilter "", "[CLIENTE] Like ""W*"""
End If
If (.FiltrosNombreCompañía = 24) Then
' X
DoCmd.ApplyFilter "", "[CLIENTE] Like ""X*"""
End If
If (.FiltrosNombreCompañía = 25) Then
' Y, Ý o ÿ
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[YÝÿ]*"""
End If
If (.FiltrosNombreCompañía = 26) Then
' Z, Æ, Ø o Å
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[ZÆØÅ]*"""
End If
If (.FiltrosNombreCompañía = 27) Then
' Mostrar todos los registros.
DoCmd.ShowAllRecords
End If
If (.CurrentRecord > 0) Then
' Si se devuelven registros para la letra seleccionada, ir al control NombreCompañía.
DoCmd.GoToControl "CLIENTE"
' Detener la macro.
Exit Function
End If
If (.CurrentRecord = 0) Then
' Si no se devuelve ningún registro para la letra seleccionada, mostrar un mensaje.
Beep
MsgBox "No hay registros para esa letra.", vbInformation, "No Records Returned"
' Mostrar todos los registros.
DoCmd.ShowAllRecords
' Presionar el botón Todos.
.FiltrosCLIENTE = 27
End If
End With
ALFA_CLIENTES_Alpha_Buttons_Exit:
Exit Function
ALFA_CLIENTES_Alpha_Buttons_Err:
MsgBox Error$
Resume ALFA_CLIENTES_Alpha_Buttons_Exit
End Function
'------------------------------------------------------------
' ALFA_CLIENTES_Imprimir
'
'------------------------------------------------------------
Function ALFA_CLIENTES_Imprimir()
On Error GoTo ALFA_CLIENTES_Imprimir_Err
' Se inicia por la macro Autoteclas ejemplo.^p cuando se presiona Ctrl+P.
' Imprimir los registros actualmente mostrados.
DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
ALFA_CLIENTES_Imprimir_Exit:
Exit Function
ALFA_CLIENTES_Imprimir_Err:
MsgBox Error$
Resume ALFA_CLIENTES_Imprimir_Exit
End Function
En definitiva es tener un formulario, en el que por ejemplo, en el pie del formulario tengas una serie de botones, ejemplo el boton "A" te filtra todos los clientes que empiezan por 'A' y asi sucesivamente todo el abecedario.
Bueno ya me contaras
[email protected]
Te pongo el codigo entero, no se si e aclararas, pero si tienes alguna duda me escribes y te mando un ejemplo.
Option Compare Database
'------------------------------------------------------------
' ALFA_CLIENTES_Alpha_Buttons
'
'------------------------------------------------------------
Function ALFA_CLIENTES_Alpha_Buttons()
On Error GoTo ALFA_CLIENTES_Alpha_Buttons_Err
With CodeContextObject
' Adjunta al formulario Lista de teléfonos de clientes.
' Adjunta al evento Después de actualizar del grupo de opciones FiltrosNombreCompañía.
If (.FiltrosNombreCompañía = 1) Then
' Filtra las compañías cuyos nombres empiezan con A, À, Á, Â, Ã o Ä.
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[AÀÁÂÃÄ]*"""
End If
If (.FiltrosNombreCompañía = 2) Then
' B
DoCmd.ApplyFilter "", "[CLIENTE] Like ""B*"""
End If
If (.FiltrosNombreCompañía = 3) Then
' C o Ç
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[CÇ]*"""
End If
If (.FiltrosNombreCompañía = 4) Then
' D
DoCmd.ApplyFilter "", "[CLIENTE] Like ""D*"""
End If
If (.FiltrosNombreCompañía = 5) Then
' E, È, É, Ê, o Ë
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[EÈÉÊË]*"""
End If
If (.FiltrosNombreCompañía = 6) Then
' F
DoCmd.ApplyFilter "", "[CLIENTE] Like ""F*"""
End If
If (.FiltrosNombreCompañía = 7) Then
' G
DoCmd.ApplyFilter "", "[CLIENTE] Like ""G*"""
End If
If (.FiltrosNombreCompañía = 8) Then
' H
DoCmd.ApplyFilter "", "[CLIENTE] Like ""H*"""
End If
If (.FiltrosNombreCompañía = 9) Then
' I, Ì, Í, Î o Ï
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[IÌÍÎÏ]*"""
End If
If (.FiltrosNombreCompañía = 10) Then
' J
DoCmd.ApplyFilter "", "[CLIENTE] Like ""J*"""
End If
If (.FiltrosNombreCompañía = 11) Then
' K
DoCmd.ApplyFilter "", "[CLIENTE] Like ""K*"""
End If
If (.FiltrosNombreCompañía = 12) Then
' L
DoCmd.ApplyFilter "", "[CLIENTE] Like ""L*"""
End If
If (.FiltrosNombreCompañía = 13) Then
' M
DoCmd.ApplyFilter "", "[CLIENTE] Like ""M*"""
End If
If (.FiltrosNombreCompañía = 14) Then
' N
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[NÑ]*"""
End If
If (.FiltrosNombreCompañía = 15) Then
' O, Ò, Ó, Ô, Õ o Ö
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[OÒÓÔÕÖ]*"""
End If
If (.FiltrosNombreCompañía = 16) Then
' P
DoCmd.ApplyFilter "", "[CLIENTE] Like ""P*"""
End If
If (.FiltrosNombreCompañía = 17) Then
' Q
DoCmd.ApplyFilter "", "[CLIENTE] Like ""Q*"""
End If
If (.FiltrosNombreCompañía = 18) Then
' R
DoCmd.ApplyFilter "", "[CLIENTE] Like ""R*"""
End If
If (.FiltrosNombreCompañía = 19) Then
' S o (S hacek)
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[S]*"""
End If
If (.FiltrosNombreCompañía = 20) Then
' T
DoCmd.ApplyFilter "", "[CLIENTE] Like ""T*"""
End If
If (.FiltrosNombreCompañía = 21) Then
' U, Ù, Ú, Û o Ü
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[UÙÚÛÜ]*"""
End If
If (.FiltrosNombreCompañía = 22) Then
' V
DoCmd.ApplyFilter "", "[CLIENTE] Like ""V*"""
End If
If (.FiltrosNombreCompañía = 23) Then
' W
DoCmd.ApplyFilter "", "[CLIENTE] Like ""W*"""
End If
If (.FiltrosNombreCompañía = 24) Then
' X
DoCmd.ApplyFilter "", "[CLIENTE] Like ""X*"""
End If
If (.FiltrosNombreCompañía = 25) Then
' Y, Ý o ÿ
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[YÝÿ]*"""
End If
If (.FiltrosNombreCompañía = 26) Then
' Z, Æ, Ø o Å
DoCmd.ApplyFilter "", "[CLIENTE] Like ""[ZÆØÅ]*"""
End If
If (.FiltrosNombreCompañía = 27) Then
' Mostrar todos los registros.
DoCmd.ShowAllRecords
End If
If (.CurrentRecord > 0) Then
' Si se devuelven registros para la letra seleccionada, ir al control NombreCompañía.
DoCmd.GoToControl "CLIENTE"
' Detener la macro.
Exit Function
End If
If (.CurrentRecord = 0) Then
' Si no se devuelve ningún registro para la letra seleccionada, mostrar un mensaje.
Beep
MsgBox "No hay registros para esa letra.", vbInformation, "No Records Returned"
' Mostrar todos los registros.
DoCmd.ShowAllRecords
' Presionar el botón Todos.
.FiltrosCLIENTE = 27
End If
End With
ALFA_CLIENTES_Alpha_Buttons_Exit:
Exit Function
ALFA_CLIENTES_Alpha_Buttons_Err:
MsgBox Error$
Resume ALFA_CLIENTES_Alpha_Buttons_Exit
End Function
'------------------------------------------------------------
' ALFA_CLIENTES_Imprimir
'
'------------------------------------------------------------
Function ALFA_CLIENTES_Imprimir()
On Error GoTo ALFA_CLIENTES_Imprimir_Err
' Se inicia por la macro Autoteclas ejemplo.^p cuando se presiona Ctrl+P.
' Imprimir los registros actualmente mostrados.
DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
ALFA_CLIENTES_Imprimir_Exit:
Exit Function
ALFA_CLIENTES_Imprimir_Err:
MsgBox Error$
Resume ALFA_CLIENTES_Imprimir_Exit
End Function
En definitiva es tener un formulario, en el que por ejemplo, en el pie del formulario tengas una serie de botones, ejemplo el boton "A" te filtra todos los clientes que empiezan por 'A' y asi sucesivamente todo el abecedario.
Bueno ya me contaras
[email protected]
