Necesito un BUSCADOR DE DATOS
Por favor, necesito q alguen me expliqe como se hace un buscador de registros de base de dato en el Visual, por q es q me sta sacando de mis casillas. Ya tengo la base de datos cargada en el programa, lo e probao en Jet 4.0 y ODBC Drivers, pero nada. Si Alguen lo sabe, puede escribirlo en este foro o bien mandarme un email a [email protected]. Gracias
puedes usar un sql query para buscar los datos y un msflexgrid para que te los muestre. En esta pagina encontraras mas acerca del sql http://www.1keydata.com/sql/sql.html
Con el sql es la forma mas sencilla de buscar registros con diferentes criterias, tambien puedes usar un control data y hacer un bucle hasta encontrar los registros que necesites
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then 'si el usuario hace click en enter
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
With Data1.Recordset ' empieza la busqueda
.MoveLast ' empezando desde el final
Do Until .BOF 'hasta que llegue al incio de la bdd
If Text1.Text = .Fields("Numero") Then
Call fillout ' si es el numero que se busca llama a
Exit Do 'otra subrutina para llenar los cuadros
Else 'de texto y si no, mueve el siguiente reg
.MovePrevious
If .BOF = True Then Call ClearTextN
End If ' si es el principio termino la busqueda
Loop 'regresa a do si no ha llegado al principio
End With
Else
End If
End Sub
espero no este muy confuso esto y te pueda ayudar
Con el sql es la forma mas sencilla de buscar registros con diferentes criterias, tambien puedes usar un control data y hacer un bucle hasta encontrar los registros que necesites
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then 'si el usuario hace click en enter
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
With Data1.Recordset ' empieza la busqueda
.MoveLast ' empezando desde el final
Do Until .BOF 'hasta que llegue al incio de la bdd
If Text1.Text = .Fields("Numero") Then
Call fillout ' si es el numero que se busca llama a
Exit Do 'otra subrutina para llenar los cuadros
Else 'de texto y si no, mueve el siguiente reg
.MovePrevious
If .BOF = True Then Call ClearTextN
End If ' si es el principio termino la busqueda
Loop 'regresa a do si no ha llegado al principio
End With
Else
End If
End Sub
espero no este muy confuso esto y te pueda ayudar
hola una forma mas sencilla es:
declaraciones
dim Cn as adodb.connection
dim Rs as adodb.recordset
private sub Abrirconexion()
set cn=new adodb.connection
cn.connectionstring="provider=microsoft.jet.oledb.4.0;data source=ruta de la base;persist security info=false"
cn.open
end sub
private sub Buscar(byval Sql as string)
set rs=new adodb.recordset
abrirconexion
rs.cursorlocation=aduserclient 'o algo asi no recuerdo muy bien
rs.type =adcmdtext
rs.open cn,sql,3,3 'el 3,3 son nombres solo que no recuerdo cuales son pero esto servira, es mas te los muentra en una lista cuando pones las comas
end sub
private sub cerrarconexion()
if rs.state=1 then
rs.close
set rs=nothing
end if
if cn.state=1 then
cn.close
set cn=nothing
end if
end sub
ahora para utilizarlo haces esto
en el evento keypress de un text o el click de un boton
buscar("select campos from tabla where campo=valor")
y el rs estara cargado con los datos que encontro, y solo lo asingas al control que quieras
despeus de eso cierras
cerrarconexion
ylisto
la comparacion en la clusula where puede se asi
campo='" & text1 & "' con comillas simples al inicio y final si es una cadena y sin comillas si es un numero,
campo like = lo mismo que el anterior
si es fecha cambias la comilla simple por (gato)
y listo
declaraciones
dim Cn as adodb.connection
dim Rs as adodb.recordset
private sub Abrirconexion()
set cn=new adodb.connection
cn.connectionstring="provider=microsoft.jet.oledb.4.0;data source=ruta de la base;persist security info=false"
cn.open
end sub
private sub Buscar(byval Sql as string)
set rs=new adodb.recordset
abrirconexion
rs.cursorlocation=aduserclient 'o algo asi no recuerdo muy bien
rs.type =adcmdtext
rs.open cn,sql,3,3 'el 3,3 son nombres solo que no recuerdo cuales son pero esto servira, es mas te los muentra en una lista cuando pones las comas
end sub
private sub cerrarconexion()
if rs.state=1 then
rs.close
set rs=nothing
end if
if cn.state=1 then
cn.close
set cn=nothing
end if
end sub
ahora para utilizarlo haces esto
en el evento keypress de un text o el click de un boton
buscar("select campos from tabla where campo=valor")
y el rs estara cargado con los datos que encontro, y solo lo asingas al control que quieras
despeus de eso cierras
cerrarconexion
ylisto
la comparacion en la clusula where puede se asi
campo='" & text1 & "' con comillas simples al inicio y final si es una cadena y sin comillas si es un numero,
campo like = lo mismo que el anterior
si es fecha cambias la comilla simple por (gato)
y listo
