Gracias a Gydba y al Guille

Ya estoy trabajando con ADO, gracias a Gydba y al Guille.
en un ejemplo del manual del Guille,llenando un LIstView, me da un error en al usar execute (Set tRs = cnn.Execute(sBuscar)).
Parece que algo no tengo claro, porque no lo pude arreglar yo solo.
Este es el ejemplo:
Private Sub cmdBuscar_Click()
' Mostrar los datos en el listview
Dim sBuscar As String
Dim tRs As Recordset
Dim tLi As ListItem
'
' Comprobar si tiene caracteres "no válidos" para ADO:
' NOTA: Replace es una función de VB6
sBuscar = Text2
sBuscar = Replace(sBuscar, "*", "%")
sBuscar = Replace(sBuscar, "?", "_")
'
Text2 = sBuscar
' Formar la cadena de la consulta:
' Se busca por el nombre del autor y se muestran clasificados por el nombre
sBuscar = "SELECT * FROM Authors WHERE Author LIKE '" & sBuscar & "' ORDER BY Author"
' Creamos un recordset del tipo "estático", el cual no es modificable
' para poder modificarlo, tendría que ser del tipo dbOpenDynamic
Set tRs = cnn.Execute(sBuscar)
' Comprobar que hay datos en el recordset
With tRs
' Si no hay datos...
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 tLi = ListView1.ListItems.Add(, , .Fields("Au_ID") & "")
tLi.SubItems(1) = .Fields("Author") & ""
tLi.SubItems(2) = .Fields("Year Born") & ""
.MoveNext
Loop
End If
End With
End Sub
Respuesta
1
1.Revisa que la variable con este bien inicializada.
2.Generalmente yo pongo
Dim tRs As NEW ADODB.Recordset
3.Generalmente yo utilizo
TRs. Open sBuscar, cadenadeconexion
Aun cuando me inclino en decir que el error debe estar en la declaración de con.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas