Quiero buscar un nombre en ADO sin tener que pasar por todos los registros comprobando uno por uno

Necesito que me hagas un favor:
Estoy trabajando con ADO, lo que quiero es buscar un nombre por ej. Pero sin estar recorriendo todos los registros, ¿qué puedo hacer?
De antemano gracias

1 Respuesta

Respuesta
1
Aquí tienes un ejemplo de búsqueda por código o por descripción espero que lo entiendas sino enviame tu correo para enviarte el codio completo...
Private Sub Text2_KeyPress(KeyAscii As Integer)
' Se buscará sólo cuando pulsemos INTRO
'
' Comprobar si la tecla pulsada es Intro: vbKeyReturn o 13 que es lo mismo
If KeyAscii = vbKeyReturn Then
On Error Resume Next
' Esta asignación evita que suene un BEEP
KeyAscii = 0
'
Buscar
End If
End Sub
Private Sub Buscar(Optional ByVal Siguiente As Boolean = False)
' Procedimiento para buscar el dato indicado (18/Ene/01)
' Si Siguiente = True, se busca a partir del registro activo
Dim nReg As Long
Dim vBookmark As Variant ' En ADO debe ser Variant, no vale un String
Dim sADOBuscar As String
'
' Iniciamos la detección de errores
On Error Resume Next
'
' Buscar la primera coincidencia en el recordset del Data1
If Option1.Value Then
' Convertir el contenido de TextBox en un número
nReg = Val(Text2)
' En el campo Au_ID
sADOBuscar = "Au_ID = " & nReg
End If
If Option2.Value Then
' en el campo Author
sADOBuscar = "Author Like '" & Text2.Text & "'"
End If
' Guardar la posición anterior, por si no se halla lo buscado...
vBookmark = Adodc1.Recordset.Bookmark
'
If Siguiente = False Then
' Buscar desde el principio
Adodc1. Recordset. MoveFirst
Adodc1. Recordset. Find sADOBuscar
Else
' Busca a partir del registro actual
Adodc1. Recordset. Find sADOBuscar, 1
End If
' Devolverá un error si no se halla lo buscado
' aunque no siempre es así...
If Err.Number Or Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF Then
Err.Clear
MsgBox "No existe el dato buscado o ya no hay más datos que mostrar."
' Posicionar el recordset en la posición guardada
Adodc1.Recordset.Bookmark = vBookmark
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas