Disculpa por la demora, lo primero que debes hacer es crear una tabla socios con los datos que me has dicho. Segundo, sería crear tu formulario de búsqueda, que en el encabezado de formulario va tener 1 combobox y 2 textbox.
El formulario debe tener como origen de registro la tabla socios.
El cuerpo de tu formulario (el detalle) debe ser visto como Formulario único tipo contínuo que permita entrada de datos, ediciones y filtros.
Tu combobox debe llamarse cmb_ciudad y tener como origen lo siguiente:
SELECT DISTINCT socios.ciudad, socios.ciudad FROM socios ORDER BY socios.ciudad;
y debe ser dependiente de la columna 1.
Tus textbox deben llamarse txt_apellidos y txt_direccion.
En la codificación del VBA para Access debes definir las variables globales a utilizar:
Dim ciudad_buscar As String
Dim apellido_buscar As String
Dim direccion_buscar As String
y crear un procedimiento de búsqueda como este:
Private Sub buscar(Optional ByVal ciudadp As String, Optional ByVal apellidop As String, Optional ByVal direccionp As String)
On Error Resume Next
Dim sql As String
sql = "select * from socios " & _
" where ciudad like '" & ciudadp & "*'" & _
" and apellido like '" & apellidop & "*'" & _
" and direccion like '" & direccionp & "*';"
Me.RecordSource = sql
Me.Requery
End Sub
En el evento al cambiar de tu combobox y textbox debes colocar:
Private Sub txt_apellidos_Change()
If IsNull(Me.cmb_ciudad) Then
ciudad_buscar = ""
Else
ciudad_buscar = Me.cmb_ciudad
End If
If IsNull(Me.txt_apellidos) Then
apellido_buscar = ""
Else
apellido_buscar = Me.txt_apellidos
End If
If IsNull(Me.txt_direccion) Then
direccion_buscar = ""
Else
direccion_buscar = Me.txt_direccion
End If
Call buscar(ciudad_buscar, apellido_buscar, direccion_buscar)
Me.txt_apellidos.SetFocus
Me.txt_apellidos.SelStart = Me.txt_apellidos.Width - Len(txt_apellidos.Text)
End Sub
Para el combobox sería en la parte final:
Me.cmb_ciudad.SetFocus
y para txt_direccion:
Me.txt_direccion.SetFocus
Me.txt_direccion.SelStart = Me.txt_direccion.Width - Len(txt_direccion.Text)
Finalmente lo que estás buscando también es poder abrir un formulario "detallado", entonces debes crear otro formulario llamado socios y agregar un control tipo botón en tu formulario en cada uno de los registros que permita desplegar la información, su código podría ser:
Private Sub cmd_abrirform_Click()
DoCmd.OpenForm "socios", acNormal, , "codsocio = " & Forms!buscar_socios![codsocio] & "", acFormEdit, acDialog
End Sub