Necesito un BUSCADOR DE DATOS

makiduende
26 de Abril del 2004
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

rigel07
26 de Abril del 2004
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



krizall
26 de Abril del 2004
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