¿Cómo puedo hacer una búsqueda en una base de datos de access desde el visual basic 6?

Hola quisiera saber si me puedes ayudar.
Mira mi problema es que quiero hacer una búsqueda en una bd de access y el programa esta en vb6 lo que intento hacer es que el contenido de una caja de texto sea buscado en la bd p'ara que esta me devuelva todo el registro, pero quiero hacer la búsqueda con sentencias sql.. ¿a continuación te pongo lo que yo hice pero son funciona porque?
DB.OpenRecordset ("SELECT * FROM " & productor & " WHERE " & cod_busca = Rs.Fields(0).Value)
'abre la bd y la tabla cod_busca es la variable a buscar pero no devuelve nada
Y no da error es solo que siempre se queda en el primer registro siempre devuelve el primero.

1 respuesta

Respuesta
1
En este ejemplo, uso un recordset para hacer la búsqueda, el único requisito es que tenga un campo llamado ID, que será el que se devuelva con el dato encontrado.
La rutina acepta búsquedas hacia delante y hacia atrás, para buscar hacia atrás la variable buscAtras será True.
Se supone que además tienes una variable (Db) con la base de datos que estás usando.
Aquí tienes el código...
Private Function BuscarEnBase(Optional ByVal sBusqueda As String = "") As Long
'Devuelve el número de ID
Dim sSQL As String
Dim lID As Long
On Local Error Resume Next
If Len(sBusqueda) Then
sSQL = "SELECT * FROM " & sTabla & " WHERE " & sBusqueda
Set RsBuscar = Db.OpenRecordset(sSQL, dbOpenSnapshot)
If Not RsBuscar.EOF Then
'Primera búsqueda
If buscAtras Then
RsBuscar.MoveLast
End If
lID = CLng(RsBuscar("ID"))
Else
lID = 0&
End If
Else
If buscAtras Then
RsBuscar.MovePrevious
Else
RsBuscar.MoveNext
End If
lID = CLng(RsBuscar("ID"))
End If
If (lID = 0&) Or (Err <> 0) Then
lID = 0&
'para que al seguir buscando se empiece por el primero
If buscAtras Then
RsBuscar.MoveLast
RsBuscar.MoveNext
Else
RsBuscar.MoveFirst
RsBuscar.MovePrevious
End If
End If
Err = 0
BuscarEnBase = lID
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas