Usando Seek ------------------------------------- Sub ADOSeekRecord() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset ' Open the connection cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=.\MiBase.mdb;" ' Abre el Recordset rst.Open "Order Details", cnn, adOpenKeyset, adLockReadOnly, _ adCmdTableDirect ' Seleccionamos el campo indice usado. Suponemos que es IDCliente rst.Index = "PrimaryKey" ' Buscamos los campos comprendidos entre IDCliente = 10255 y 16 rst.Seek Array(10255, 16), adSeekFirstEQ If Not rst.EOF Then Debug.Print rst.Fields("NombreCliente").Value End If rst.Close ------------------------------------- 'Otro metodo, usando el Filter. ------------------------------------- Sub ADOFilterRecordset() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset ' Open the connection cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=.\MiBase.mdb;" rst.Open "CLientes", cnn, adOpenKeyset, adLockOptimistic rst.Filter = "Country='Espaņa' And Fax <> Null" Debug.Print rst.Fields("ClientesId").Value rst.Close End Sub -------------------------------------