Error con ado y datagrid

Tengo el siguiente código, y un datagrid en el formulario
Public BDado As New ADODB.Connection
Public RSado As New ADODB.Recordset
BDado.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mipath\Biblio.mdb"
RSado.Open "SELECT cod_Autor, autor ,nacimiento FROM Autores", BDado
Set dtGridAutores.DataSource = RSado
Y me salta el siguiente error.
El conjunto de filas no admite marcadores
...
¿Podrías decirme cual es el problema?

6 respuestas

Respuesta
1
Ese error lo suele dar cuando el tipo de cursor utilizado en la conexión o recordset no es el adecuado. Por desgracia, no se sabe muy bien que tipo de cursor coge por defecto, así que lo que yo hago es forzarle a que me coja el cursor correcto:
Miconex.cursorLocation=adUseClient
Mirecordset.cursorlocation=adUseClient
Prueba a hacer esto entre las declaraciones y las aperturas. De todas maneras también he observado que tampoco le dices el tipo de transacción que vas a usar al abrir la conex, por lo cual también deberías poner lo siguiente:
Mirec.cursorType=adOpenDynamic
Miconex.cursorType=adOPenDynamic (todas las operaciones)
o bien:
Mirec.cursorType=adOpenStatic
Miconex.cursorType=AdOpenStatic (Solo lectura).
De todas maneras si no te sirve indaga en tema de cursores que por ahí van los tiros.
Hola estaba escribiéndote para pedirte una aclaración y se me ocurrió poner miRecorset.cursorlocation arriba de la instrucción miRecorset.open etc ... y eureca se completo el grid y no saltaron más errores.
Mil millones de gracias,
espero que no te moleste que te agregue a mis expertos favoritos =)
Muchas gracias de nuevo
Te mereces 10 puntos pero solamente llega hasta 5 así atrapa tus 5
Respuesta
1
Coloca este código antes de la línea donde abres la conexión:
BDado.CursorLocation=adUseClient
Lo que paso es que esta propiedad por default esta apuntando al server, y el recordset tu lo vas usar localmente.
Muchas gracias por responder
Tu respuesta es la solución que me dieron y función así que te mereces un excelente.
Voy a agregarte a mis expertos favoritos espero que no te moleste
Respuesta
1
Sustituye
BDado.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mipath\Biblio.mdb"
por
BDado.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& app.path &"\Biblio.mdb"
Y coloca la BD Biblio en el mismo directorio de ejecución del Proyecto, sino funciona me avisas, Suerte
El problema era que me faltaba asignarle rsautores.cursorlocation = aduser
Donde dice mipath era para no escribir todo el código en el mensaje.
Pero aproveche para probar que era app.path y gracias a vos me ahorre escribir una nueva pregunta...
Desde ya muchas gracias =) te mereces la mejor nota por haberme ahorrado otra pregunta =)
Respuesta
1
No estoy del todo seguro pero me temo que si dice que no admite marcadore es que no los admite ;-)
De todas forms revisa la sintaxis:
Open, método (Recordset ADO)
Sintaxis:
Recordset. Open Source, ActiveConnection, CursorType, LockType, Options
Procura no usa los métodos con los parámetros por defecto. Asegurate de que sabes de que tipo es y especificalo... es lo que yo suelo hacer.
Suerte!
Jagar
Muchas gracias por responder,
Tu respuesta tenía parte de la solución, Lo que faltaba era ponerle al recorset cursorlocation.
Espero que no te moleste que te agregue en mis favoritos =)
Respuesta
1
Prueba de esta manera:
RSado. Open "SELECT cod_Autor, autor, nacimiento FROM Autores", BDado, adOpenDynamic, adLockOptimistic
Saludos
Roberto Alvarado
Cartagena - Colombia
Gracias por responder espero que no te moleste que te agregue a mis favoritos.
Tu respuesta tenia parte de la solución, lo que me faltaba era agregar miRecorset.cursorlocation
Respuesta
Primero yo declaro y uso los recordset diferente a vos, por eso es que no entiendo el BDado después de la consulta.
Te muestro como lo hago.
Primero la conexión (igual)
despues la consulta lo hago de esta forma
consulta1="select....."
Despues hago el rs. Open
Rs. Open consulta1, BDado,(1),(2) (** ver aclaraciones**)
despues el set igual al tuyo
yo trabajo con la grillahiperchicalflexible
y nunca tengo problemas con eso. Me refiero a cargar datos en la grilla.
No admite marcadores puede ser por los datos que le ingresas o por alguna función que tengas en el datagrid que capaz tengas que cambiar.
Disculpa eso es en lo que te puedo ayudar si quieres te mando un ejemplo de recordset "a mi manera" que es más explicativo y vas paso por paso y podes distinguir si el error esta en la consulta, en la conexión o en abrindo el recordset.
Gracias por preguntar.
1(Cuando volvés a poner la coma te sale una lista, pone el primero de la listas), 2(lo
mismo) si quieres después te mando para que sirven

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas