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
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