Problema con búsquedas

Silvina
04 de Septiembre del 2003
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.

fredi
04 de Septiembre del 2003
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]