Ado y datagrid... Conexión y selección

Me parece que vos me podes ayudar...
1) Cree una conexión y un recordset ADO por código (adodbc. Recordset).
Quiero saber si se puede enlazar a un Datagrid y como se hace.
2) Del Datagrid anterior, necesito poder pasar un registro a otro
formulario para poder editarlo (no quiero editarlo en el Datagrid).
Lo que se me ocurrió a mi, es tomar el id o clave del registro que
seleccione y pasarlo como parámetro al otro formulario. ¿Quisiera
saber si hay alguna otra forma para hacerlo, porque no me parece que
sea la mejor. Tal vez usando filter, pero no se como se usa =(

1 respuesta

Respuesta
1
'Bien lo primero para en lazar el recordser al _
datagrid se realiza de la siguiente manera
Dim mYrecordset As New ADODB.Recordset
Dim sSql As String
sSql = "Select * From Clientes"
mYrecordset.Open sSql
Set DataGrid1.DataSource = mYrecordset
'En cuanto a la edicion, me parece bastante correcto lo de pasar por propiedad _
El Campo clave pero me parece entender que tu piensas abrir otro formulario para la edición _
Sin descargar el primero que contendrá el grid (si es así esto te dará la opción de poder hacer referencia al registro en _
Todo momento referenciadote como PrimerFormulario. DataGrid1 Con lo que como estas posicionado en una fila o columna siempre puedes obtener _
Cualquier campo que tengas en el grid. Eso si la primera opción osea por la que has optado me parece de lo más correcta _
Para interactuar con el registro vía sql.
'En cuanto al filter te lo explico pero no te lo recomiendo para tu caso
'El filter sirve para filtrar imaginate en el ejemplo que te he puesto de obtener todos los registros de la tabla clientes
'pues quiero recuperar solo los clientes con Nombre = Pepe sin tener que cerrar nuestro recordset. Hariamos lo siguiente
mYrecordset.Filter = "Nombre = 'Pepe'"
'Para recuperar la seleccion actual pondiramos
mYrecordset.Filter = ""
Y eso es todo Saludos
Me recomendaste hacer esto...
mYrecordset.Open sSql
Set DataGrid1.DataSource = mYrecordset
¿Qué ya lo tenia hecho más o menos pero sigue sin abrir, será por alguna de las propiedades que le puse?
Public BDado As New ADODB.Connection
Public RSado As New ADODB.Recordset
BDado.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=miPath"
RSado.Open mSQL, BDado, adOpenStatic, adLockOptimistic, adCmdText
Set dtGridAutores.DataSource = RSado
No sabía cual era mi error, entonces use este código para ver si estaba bien hecha la conexión... y la conexión me anduvo sin problemas.
Debug.Print RSado.Fields!autor
RSado.MoveNext
Ahora voy a probar sacándole las propiedades del recordset que tenía demás...
'A nivel Global
public gcConexion As Connection
'A nivel de tu evento de carga
dim sConexionBD as string
dim RSado as New ADODB.Recordset
sConexionBd="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\LoeweDB.mdb" & ";Jet OLEDB:Database Password=;"
Set Bdado = New ADODB.Connection
gcConexion.Open sConexionBD
'Primera opcion
Set Rsado = Bdado.execute ssql
'Segunda Opcion
Rsado.Open sSql, Bdado 'Deja los valores por defecto para la consulta
Set dtGridAutores.DataSource = RSado
Esto debería funcionarte sin ningún problema Saludos.
Probé de las 2 formas y ahora salta un error .
---------------
Error 7004 en tiempo de ejecución
El conjunto de filas no admite marcadores
-----------
Set RSado = BDado.Execute("SELECT cod_Autor, autor ,nacimiento FROM Autores")
Set dtGridAutores.DataSource = RSado
Salta el error en la linea del dtgridautores
¿Puede ser que me falte agregar alguna referencia o algo?
No se cuanto ocupa tu programa zipeado pero seria conveniente que me lo mandases por correo así le hecho un vistazo y te digo que es exactamente lo que le pasa puedes enviármelo a [email protected] Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas