Access - Buscar en Formulario

   
Vista:

Buscar en Formulario

Publicado por Carlos (4 intervenciones) el 22/04/2008 23:00:32
Tengo una base de datos en la cual tengo que buscar por direcciones, las cuales tengo combinadas en una consulta unidos varios campos, hay unos 3000 direcciones distintas. Mi pregunta es,
1º Se puede ir escribiendo la calle y que vaya saliendo en la caja de texto del formulario
2º O en su caso un boton de busqueda que me salga en otro formulario o subformulario, todos los datos de la calle que yo ponga....

Gracias........
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar en Formulario

Publicado por Adolfo (98 intervenciones) el 23/04/2008 13:20:42
Te pongo un troncho de codigo, esto lo que hace es buscar en una tabla por apellidos, y nombre. Cambia el apillidos y nombre por direccion, y te busca algo aproximado, como en el caso de los apellidos si el apellido es Martinez, con poner mar o M ya te sale.
No me preguntes que te explike el resto como funciona porque el DAO.recordset no tengo ni idea de como funciona XD solo se pues modificar tonterias.
Espero que te sea de ayuda esto.
un saludo,
-Adolfo-


Option Compare Database
Dim Var As String 'defino variable de memoria
Dim db As DAO.Database, rs As DAO.Recordset 'defino recordser para procesar los registros



Private Sub Form_Load()
Limpia 'limpia las variables
Me.txt_Cte.Value = "" 'limpia la variable de la clave
Me.txt_Cte.SetFocus 'situo el cursor en el campo txt_cte
End Sub

Sub Limpia() 'inicializa las variables
Me.txt_Nombre.Value = ""
Me.txt_Nombre.Visible = False
Me.txt_Apellidos.Value = ""
Me.txt_Apellidos.Visible = False
Me.txt_Tel1.Value = ""
Me.txt_Tel1.Visible = False
Me.txt_tel2.Value = ""
Me.txt_tel2.Visible = False
Me.txt_IDCLIENTE.Value = ""
Me.txt_IDCLIENTE.Visible = False
Me.Comando0.SetFocus
'Me.Comando11.Visible = False
End Sub


Private Sub InsertardatosNombre_Click()

Forms!INICIO.idcliente = Me.txt_IDCLIENTE.Value
Forms!INICIO.nombrecliente = Me.txt_Nombre.Value
Forms!INICIO.apellidoscliente = Me.txt_Apellidos.Value

End Sub

Private Sub Lista_BeforeUpdate(Cancel As Integer)

End Sub


Private Sub txt_Cte2_LostFocus()
If Me.txt_Cte.Value <> "" Then 'si se tecleo cliente
'busco el cliente tecleado y si existe
'muestro los datos'
'si no existe muestro mensaje
Var = "SELECT Clientes.id_cliente, Clientes.nombre, Clientes.apellidos, Clientes.telefono, Clientes.telefono2 " _
& "FROM Clientes " _
& "WHERE apellidos+nombre Like '*" & Me.txt_Cte & "*' + '*" & Me.txt_cte2 & "*'"


Set db = CurrentDb()
Set rs = db.OpenRecordset(Var)
If rs.RecordCount > 0 Then
Me.txt_IDCLIENTE.Visible = True
Me.txt_IDCLIENTE.Value = rs!id_cliente
Me.txt_IDCLIENTE.Enabled = False
Me.txt_Nombre.Visible = True
Me.txt_Nombre.Value = rs!nombre
Me.txt_Nombre.Enabled = False
Me.txt_Apellidos.Visible = True
Me.txt_Apellidos.Value = rs!apellidos
Me.txt_Apellidos.Enabled = False
Me.txt_Tel1.Visible = True
Me.txt_Tel1.Value = rs!telefono
Me.txt_Tel1.SetFocus
Me.txt_tel2.Visible = True
Me.txt_tel2.Value = rs!telefono2

'Me.Comando11.Visible = True
Else
MsgBox "No existe el cliente tecleado", vbInformation, "Aviso "
Me.txt_Cte.Value = ""
Me.txt_Cte.SetFocus
Exit Sub
End If
rs.Close
Set db = Nothing
End If
End Sub



Private Sub txt_Cte_LostFocus()
If Me.txt_Cte.Value <> "" Then 'si se tecleo cliente
'busco el cliente tecleado y si existe
'muestro los datos'
'si no existe muestro mensaje
Var = "SELECT Clientes.id_cliente, Clientes.nombre, Clientes.apellidos, Clientes.telefono, Clientes.telefono2 " _
& "FROM Clientes " _
& "WHERE apellidos+nombre Like '*" & Me.txt_Cte & "*' + '*" & Me.txt_cte2 & "*'"


Set db = CurrentDb()
Set rs = db.OpenRecordset(Var)
If rs.RecordCount > 0 Then
Me.txt_Nombre.Visible = True
Me.txt_Nombre.Value = rs!nombre
Me.txt_Nombre.Enabled = False
Me.txt_Apellidos.Visible = True
Me.txt_Apellidos.Value = rs!apellidos
Me.txt_Apellidos.Enabled = False
Me.txt_IDCLIENTE.Visible = True
Me.txt_IDCLIENTE.Value = rs!id_cliente
Me.txt_IDCLIENTE.Enabled = False
Me.txt_Tel1.Visible = True
Me.txt_Tel1.Value = rs!telefono
Me.txt_Tel1.SetFocus
Me.txt_tel2.Visible = True
Me.txt_tel2.Value = rs!telefono2

'Me.Comando11.Visible = True
Else
MsgBox "No existe el cliente tecleado", vbInformation, "Aviso "
Me.txt_Cte.Value = ""
Me.txt_Cte.SetFocus
Exit Sub
End If
rs.Close
Set db = Nothing
End If
End Sub


Private Sub Comando0_Click()
DoCmd.Close
End Sub

Private Sub Comando14_Click()
On Error GoTo Err_Comando14_Click

Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

Exit_Comando14_Click:
Exit Sub

Err_Comando14_Click:
MsgBox Err.Description
Resume Exit_Comando14_Click

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en Formulario

Publicado por Carlos (4 intervenciones) el 23/04/2008 14:54:09
Gracias por responderme, intentaré formar este texto para q me valga...

Saludos y Gracias por el aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar