Buen día, estoy intentando usar el código que copio más abajo, desde un formulario en Excel:
Cuando lo ejecuto la primera vez, funciona perfecto, pero a partir de la segunda ya no da ningún resultado (tampoco da error).
Al inspeccionarlo me doy cuenta que la segunda vez, al abrir el Recordset, automáticamente le pone la propiedad EOF en True.
No sé como hacer para evitar eso.
Sé que luego de CopyFromRecordset, el OEF se pone en verdadero, pero, se suponía que al cerrar el Recordset, esto quedaba sin efecto.
Agradecería cualquier ayuda.
Muchas gracias de antemano.
Saludos
Pablo
Worksheets("CLIEMH").Range("Z1:AZ3000").Clear
vNombre = TextBox1
Sql = "SELECT NROCTA, NOMBRE, DIRECC FROM [CLIEMH$E9:T2000] WHERE NOMBRE LIKE '%" & _
vNombre & _
"%' order by NOMBRE"
Set Cnn = New ADODB.Connection
With Cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & ActiveSheet.Parent.FullName
.Properties("Extended Properties").Value = "Excel 8.0;HDR=Yes"
.Open
End With
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open Sql, Cnn ', , , adCmdText
If Rs.EOF = False Then
Worksheets("CLIEMH").Range("AA3:AA" & Rs.RecordCount + 3).CopyFromRecordset Rs
End If
Rs.Close
Set Rs = Nothing
Cnn.Close
Set Cnn = Nothing