Visual Basic para Aplicaciones - problema con la busqueda

Life is soft - evento anual de software empresarial
 
Vista:

problema con la busqueda

Publicado por sandra (33 intervenciones) el 30/10/2007 06:52:26
Hola:
no se como puedo hacer una busqueda de dato tipo numerico o integer para buscarx ejemplo( por dni) .
tengo una busqueda tipo string. es asi:(no se como le puedo tranformar,..???)
****
Private Const SQL As String = "Select * From personas"
Private Const CAMPO_BUSCAR As String = "apellido"

Private Sub Form_Load()
' Nuevo objeto Recordset
Set Recordset = New Recordset
' Abre el Recordset con la consulta
Recordset.Open SQL, bd_consultorio, adOpenStatic, adLockOptimistic
' Asigna el recordset al datagrid
Set DataGrid1.DataSource = Recordset
End Sub

Private Sub Text1_Change()
If Text1 <> "" Then
'busca por el campo especificado en la constante CAMPO_BUSCAR _
y tomando como valor el dato del textbox
Recordset.Filter = CAMPO_BUSCAR & " LIKE '*" + Text1.Text + "*'"
End If
End Sub
*************
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
sin imagen de perfil

RE:problema con la busqueda

Publicado por VICTOR MARROQUIN RDZ (49 intervenciones) el 31/10/2007 15:21:48
Hola, yo para llenar un Grid lo lleno desde un RecordSet con la condicion que necesito, limpio el Grid y barro el RecordSet., tu caso podria ser de la siguiente manera:

Public cnn As ADODB.Connection

Set cnn = ADODB.Connection

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & ";Jet OLEDB:Database Password=XX"

TxtNombre= "Juan"
TxtApellido="Perez"
TxtCiudad= "Monterrey"
TxtEdad=25

Dim Rs As New ADODB.RecrodSet
Dim Sql As String
Dim vbTipoBusqueda As Integer

'''' 1= Nombre, 2=Apellido, 3=Ciudad, 4= Edad

vbTipoBusqueda= 4 ' Busqueda por Edad

Grid1.Clear

sql =""
Sql= Sql & "Select * From Personas Where "
'' SE HACE LA BUSQUEDA POR EL CAMPO QUE SE NECESITE
Select Case vbTipoBusqueda
Case =1
Sql = Sql & "((InStr([Nombre],'" & TxtNombre & "')<>0)) ;"
Case =2
Sql = Sql & "((InStr([Apelldio],'" & TxtApellido & "')<>0)) ;"
Case =3
Sql = Sql & "((InStr([Ciudad],'" & TxtCiudad& "')<>0)) ;"
Case =4
Sql = Sql & "Edad=" & Val(TxtEdad) & ";"
End Select
Set Rs = cnn.Execute(Sql)
If Rs.Eof=True Then
Rs.Close
'' NO HAY INFORMACION
Exit Sub
EndIf

' SE BARRE EL RS Y SE CARGA EL GRID
Do While Rs.Eof=False
DoEvents
Grid1.AddItem Rs("Nombre") & vbTab & Rs("Apellido") & vbTab & Rs("Ciudad")
Rs.MoveNext
Loop
Rs.Close

En este ejemplo se hace un filtro a todas las personas que tiene la edad de 25 y se cargan al grid.
Ojala y te haya entendido bien tu necesidad, si tienes dudas mandame un mail para pasarte un ejemplo.
Salud2
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