PROBLEMA CON ADO..PLEASE URGENTE

Edgar
18 de Julio del 2004
Hola colega, tengo una gran problema ya que un compañero me facilito un código para poder realizar el método seek de dao pero en ado. Mi sistema maneja mas de 3 millones de registros y me funciona perfectamente la busqueda. El problema es que necesito realizarlo en ADO para poder utilizar el data report y otras cosas mas que se me facilitan por ADO.
El siguiente código es el que me presenta problema:

Public database2 As New ADODB.Connection
Public vzla3 As New ADODB.Recordset

Public Sub Abrir()
database2.Open "Provider=Microsoft.jet.oledb.3.51;" & "Data Source=.vzla3.mdb;"
End Sub
vzla3.Open "vnz3", database2, adOpenKeyset, adLockReadOnly, adCmdTableDirect
vzla3.Index = "PrimaryKey"
'vzla3.Seek Array(6028038, 9115850), adSeekFirstEQ
<<Intente por este método pero me da el mismo error>>
vzla3.Seek "=", TXTcedula.Text
If vzla3.EOF And vzla3.BOF Then
varmsg1 = MsgBox("Cédula de Identidad No encontrada", vbCritical, "Atención")
TXTcedula.Text = ""
limpiar
TXTcedula.SetFocus
vzla3.MoveFirst
Exit Sub
End If
TXTapell1 = vzla3.Fields("Apell1")
TXTapell2 = vzla3.Fields("Apell2")
TXTnombre1 = vzla3.Fields("Nombre1")
TXTnombre2 = vzla3.Fields("Nombre2")
TXTfech_nac = vzla3.Fields("Fech_nac")
TXTfech_expe = vzla3.Fields("Fech_expe")

El error que me da es el siguiente: "3251" El proveedor actual no admite la interfaz necesaria para la funcionalidad Indice.

Agradezco de tu ayuda amigo para ver en que peude ser lo que estoy fallando porque de verdad que me las he visto negras con esto... Gracias de antemano

kinoscar
18 de Julio del 2004
en el tiempo que llevo utilizando el adodc en lugar de hacer un seek para localizar un registro especifico utilzo un find para ello, lo hago de la siguiente forma

adodc1.recordser.find "campo1=" & text1.text,,,1

con esto busca en el campo indicado partiendo del primer registro

para saber si encontro o no un registro se evalua la propiedad eof, si esta es false significa que encontro el registro buscado

espero te sirva
suerte

Edgar
18 de Julio del 2004
Y si tengo 3 millones de registros como puedo trabajar los indices con ADO para que no se tarde tanto tiempo en realizar las consultas??? Agradezco tu ayuda

kinoscar
18 de Julio del 2004
el find no es una consulta es una instruccion de busqueda que trabaja sobre los datos ya cargados por medio de una consulta, si haces una consulta selectivo de todos los clientes cuyo nombre empeze por la letra "a" y posterior haces un find este buscara dentro del resultado de seleccion, es como si en access filtradas una base de datos y despues haces un buscar