Error en consulta con ADO

-=Aldo=-
27 de Enero del 2004
Alguien me podría ayudar en esto: tengo un procedimiento de buscar en una base de datos pero al ejecutar la consulta me sale que la variable de tipo Object o la variable de tipo With no está establecidad. Estoy usando el ADO data control. Este es el código que estoy usando

Private Sub cmdBuscar_Click()
\'Representa por qué campo se buscará
Dim porcual As String
\'Representa el dato buscado
Dim buscado
\'texto de la consulta SQL
Dim buscar As String
Dim tli As ListItem
porcual = cbocampo.Text
\'Reemplazar los caracteres "no válidos" para ADO:
buscado = txtbuscar
\' buscado = Replace(buscado, "*", "%")
\' buscado = Replace(buscado, "?", "_")
buscado = "%" & buscado & "%"
buscar = "SELECT * FROM Datos WHERE " & porcual & " LIKE \'" & buscado & "\' ORDER BY IdFuncionario"
\'adobuscar.Recordset.MoveFirst
adobuscar.Recordset.Find buscado
With adobuscar.Recordset
If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
\' Mostrar los datos hallados
lstbusco.ListItems.Clear
.MoveFirst
Do While Not .EOF
Set tli = ListView1.ListItems.Add(, , .Fields("ID_Funcionario") & "")
tli.SubItems(1) = .Fields("Nombre") & ""
tli.SubItems(2) = .Fields("Apellido") & ""
.MoveNext
Loop
End If
End With

Le agradecería mucho a quien pudiera ilustrarme un poco acerca de qué parte la estoy haciendo mal y cómo debería hacerlo. Gracias!

-=Aldo=-
27 de Enero del 2004
hay un error en ese codigo, primero no deben tener en cuenta las barras invertidas que aparecen antes de cada comilla, como por ejemplo:
\' Mostrar los datos hallados
o esta otra linea
tli.SubItems(2) = .Fields("Apellido") & ""
Y ademas de que en vez de esta linea
adobuscar.Recordset.Find buscado
en vez "buscado" debe ser la variable buscar o sea
adobuscar.Recordset.Find buscar

Pero aun así sigue dándome el mismo error!


andru
27 de Enero del 2004
yo no entiendo mucho del tema pero te mando el codigo que uso para buscar talvez te sirva


Private Sub CmdBuscar_Click()

Dim Buscar As String
Dim rs As Recordset
Dim lista As ListItem



Buscar = Text1.Text
Buscar = Replace(Buscar, "*", "%")
Buscar = Replace(Buscar, "?", "_")
Text1.Text = Buscar

Buscar = "SELECT * FROM alumnos WHERE nombre LIKE \'" & Buscar & "\' ORDER BY nombre"
Set rs = base.Execute(Buscar)

With rs

If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
\' Mostrar los datos hallados
ListView1.ListItems.Clear
.MoveFirst
Do While Not .EOF
Set lista = ListView1.ListItems.Add(, , .Fields("Nº") & "")
lista.SubItems(1) = .Fields("nombre") & ""
lista.SubItems(2) = .Fields("apellido") & ""
lista.SubItems(3) = .Fields("direccion") & ""
lista.SubItems(4) = .Fields("telefono") & ""
lista.SubItems(5) = .Fields("email") & ""
lista.SubItems(6) = .Fields("fecha_inicio") & ""
lista.SubItems(3) = .Fields("cuota") & ""


.MoveNext
Loop
End If
End With
End Sub

pero me parece que si te marca ese error es porque te has olvidado de creear los objetos ....
Private Sub Form_Load()
Set base = New ADODB.Connection
end sub
private rs As Recordset
o puede que no ayas agregado las referencias

saludos

-=ALdo=-
27 de Enero del 2004
Si, si lo hago sin incluir el control en el formulario y sólo agregando las referencias me busca perfectamente. Lo que no entiendo es porque provoca el error cuando lo hago con el control. Es que estoy empezando a programar con base de datos y me cuesta un poco (mas bien un mucho!) jeje
De todos modos muchas gracias andru