Problema de conexión con el MSFlexGrid

Me da mucha pena molestarte de nuevo. Y por cierto, muchas gracias por dedicarme parte de tu tiempo, para contestarme la pregunta anterior. Estoy muy agradecido contigo.
Ahora pasa que no puedo establecer la conexión del MSFlexGrid con la base de datos en Access.
Me comentabas de esta instrucción:
set MSFlexGrid.recordset= turecordset
Yo puse esto, siguiendo tus instrucciones:
set MSFlexGrid.Recordset = rs_invent
Y al ejecutarlo me dice que "No se encontró el método o el miembro de datos"
Pero tampoco me pone lo de . Recordset, me da otras opciones.
En mi caso rs_invent, es el recordset que me controla la tabla Inventario. Y abro la tabla con este código, mediante un Adodc, es decir, copio la cadena de conexión y elimino por completo del formulario el Adodc:
' Para la conexión
Set cnn_invent = New ADODB.Connection
cnn_invent.ConnectionString= "mi cadena de conexión"
cnn_invetn.CursorLocation = adUseClient
cnn_invento.Open
' Para recordset
Set rs_invent = New ADODB.Recordset
rs_invent.ActiveConnection = cnn_invent
rs_invent.CursorType = adOpenDynamic
rs_invent.LockType = adLockOptimistic
rs_invent.Open "Inventario"
Ya estuve investigando un poco más, pero ni así logro establecer la conexión. He visto que puedo hacerlo mediante un Data o un Adodc.
Traté de hacerlo como está en el link del video que te pongo abajo, con un Data, y ni así me funcionó:
http://www.youtube.com/watch?v=AGxacffdHiI&feature=related
Pues al modificar las propiedad "DatabaseName" del control Data y luego la de "RecorSource", en esta última me dice que "No se reconoce el formato de base de datos"
Estoy que me vuelvo loco, entendí muy bien lo que me dijiste de las demás instrucciones. Ya logré hacer que me ponga el nombre a las columnas, en base a lo que he estado investigando y a tu ayuda, también:
MSFlexGrid1.TextMatrix (0,0) = "Clave"
MSFlexGrid1.TextMatrix (0,1) = "Descripción"
MSFlexGrid1.TextMatrix (0,2) = "Cantidad"
MSFlexGrid1.TextMatrix (0,3) = "Precio venta"
MSFlexGrid1.TextMatrix (0,4) = "Importe"
Pero me está fallando mucho la conexión, es decir, si ya tengo declarado rs_invent, para la conexión y el recordset, ¿por qué no lo hace?, ¿En qué estoy fallando?

1 respuesta

Respuesta
1
Mmmm... estas utilizando control data para realizar conexión con base de datos...
Sabes... en lo personal... no utilizo dichos controles... suelen dar problemas.
Lo que hago es controlar toso por código desde la conexión hasta el manejo de recordset todo claro utilizando ADO
Lo primero para ello, es agregar las referencias ADO al proyecto. Yo tengo la version 6.0 de Vb y tengo agregada la referencia : "microsoft ado ext. 2.8 for ddl" - "microsoft activex data object 2.8 library - "microsoft scripting runtime"
Así ya cuentas con una librería patra activex y el complemento para scripting
Bueno. La conexión la establezco así:
Declaras variable publica:
Public miconexion As ADODB.Connection
luego el sub de conexión:
Set miconexion = New ADODB.Connection ' crea la conexion odb
miconexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ruta & ";Persist " & _
"Security Info=True;Jet OLEDB:Database Password=" & Form1.Text6 & "" ' cadena para apertura d base con password
miconexion.Open  ' abres la conexin a la base
En donde la variable ruta es el string de la ubicación de tu base mdb... lo del form1.text, para el passwoord lo puedes omitir y poner el password como string directamente o bien no utilizar password
Puedes utilizar la instrucción :
Miconexion. State
Para verificar si se estableció o no la conexión si esta establecida, devolverá el valor 1
Y ya esta... tienes establecida la conexión a la base y ya puedes crear y utilizar objetos recordset
Y asignarlos a controles como el msflexgrid
Para cerrar la conexión a la base utilizas:
Miconexion. Close ' cierra conexión
Set miconexion = Nothing ' elimina la instancia
así la instrucción : set MSFlexGrid.Recordset = rs_invent   no debe daret problemas.
Utilizo esta forma hace muchos años y nunca me da problemas... pero cuando intente en un comienzo ( por flojera), utilizar controles insertables para comunicarme con una base.. uf, ni te cuento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas