Foros del Web » Programación para mayores de 30 ;) » Programación General »

datagrid de visual VS access

Estas en el tema de datagrid de visual VS access en el foro de Programación General en Foros del Web. hola tod@s!! Tengo un problemilla con un datagrid. El asunto es que le tengo que rellenar con los resultado de una busqueda, al ser la ...
  #1 (permalink)  
Antiguo 11/02/2004, 11:16
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta datagrid de visual VS access

hola tod@s!!
Tengo un problemilla con un datagrid. El asunto es que le tengo que rellenar con los resultado de una busqueda, al ser la bd access no puedo hacer procedimientos almacenados como en sql server.
El problema es que no ser como tengo que enganchar el datagrid a un recorset normal para actualizarlo, porque lo he intentado y el datagrid siempre aparece vacio.
Pongo lo siguiente:

datagrid.datasource = cadena de conexion
datagrid.damenber = recorset que he abierto antes
datagrid.refresh

y el datagrid sale vacio

¿alguien me puede ayudar?

p.d: El recorset depende del dataenvironment, pero es un recorset creado por codigo no es un comando del dataenvironment
  #2 (permalink)  
Antiguo 11/02/2004, 16:10
 
Fecha de Ingreso: febrero-2004
Ubicación: Caracas/Venezuela
Mensajes: 3
Antigüedad: 20 años, 2 meses
Puntos: 0
La cadena de conexion tiene que ser con todo desde el conectionstring, y te recomiendo que utilizes un Ado Dc, para que te haga todo el data source del datagrid y luego se lo asocias y funciona pefeee
  #3 (permalink)  
Antiguo 12/02/2004, 03:57
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
Noooooooo

horroooooorrrrrr

-dataenvironment :-p
-adodc :-p

por favor, los controles automáticos a la porra

Perdonar, es una broma, no me gustan, pero pueden ser válidos en alguna ocasión, yo nunca los he utilizado, siempre por código y a mano.

fenoy:

se te ha olvidado el famoso SET

Set datagrid.DataSource = objeto_recordset

"y nada más"
bueno, te pongo unas líneas de configuración a continuación de la instrucción SET, por si te interesan

datagrid.Columns(1).Visible = False
datagrid.Columns(0).Caption = "nombre"

Saludos
Pablo
  #4 (permalink)  
Antiguo 12/02/2004, 04:31
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
hola pabli!

haber......

he intentado poner lo que me comentaste pero me sale un error en tiempo de ejecucion : "El conjunto de filas no admite marcadores"

y el codigo que pongo es mas o menos asi:

Dim cn As New ADODB.Connection
Dim prueba As New ADODB.Recordset
Dim strCnn As String

' Abro la conexión con la tabla de access que me indica el usuario
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "/bbdd.mdb;"

cn.Open strCnn

prueba.Open "select * from tabla", cn, adOpenDynamic, adLockOptimistic

Set DataGrid1.DataSource = prueba

DataGrid1.Refresh

prueba.Close

¿Sabes donde puede estar el error?

Gracias de todas maneras.
  #5 (permalink)  
Antiguo 12/02/2004, 04:43
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
fenoy,

no te preocupes, es un error típico que he visto muchas veces.
Antes de abrir el recordset configúralo para que el conjunto de resultados esté en el cliente, pues en el servidor no funciona:

prueba.CursorLocation = adUseClient

¡antes de abrirlo, claro!

Saludos
Pablo
  #6 (permalink)  
Antiguo 12/02/2004, 04:47
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
gracias pabli!

El error era ese

pero sigo teniendo el mismo problema: el datagrid no se referesca con los datos que me recupera el recorset que yo hago.

¿Se te ocurre algo mas?
  #7 (permalink)  
Antiguo 12/02/2004, 05:01
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
claro, porque no se refresca el recordset.

Vuelve a hacer la consulta, o refresca el recordset y se lo vuelves a asignar al datagrid con "SET"

si no te lo coge, antes de asignarlo haces

Set DataGrid1.DataSource = nothing

Saludos
Pablo
  #8 (permalink)  
Antiguo 12/02/2004, 05:17
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
ME RINDOOOOO

mira pabli este el codigo que pongo:

Dim cn As New ADODB.Connection
Dim prueba As New ADODB.Recordset
Dim strCnn As String

Set cn = New ADODB.Connection
' Abro la conexión con la tabla de access que me indica el usuario
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "/fenoy.mdb;"

cn.Open strCnn

prueba.CursorLocation = adUseClient

prueba.Open "select * from facturas", cn, adOpenDynamic,
adLockOptimistic

prueba.Requery

Set frmbusqueda.DataGrid1.DataSource = prueba

frmbusqueda.DataGrid1.Refresh

prueba.Close

como puedes ver, he seguido todas tus instrucciones al pie de la letra y no consigo que el datagrid se actualice.

¿Ves algo en el codigo?
  #9 (permalink)  
Antiguo 12/02/2004, 05:29
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
nooo, no te rindas...

a ver, he querido decir que cuando cambie algo en el recordset, vuelves a hacer:

--->"aquí preguntas si está abierto el rec"
prueba.Open "select * from facturas", cn, adOpenDynamic,
adLockOptimistic
Set frmbusqueda.DataGrid1.DataSource = prueba
frmbusqueda.DataGrid1.Refresh

Si cierras el recordset, apaga y vamonos, no lo cierres , antes de volver a abrirlo, preguntas si está abierto y si lo está, lo cierras para que no te de error.
Abres la BBDD solo una vez, en un módulo, con variables globales y lo del adUseClient también solo una vez.
  #10 (permalink)  
Antiguo 12/02/2004, 05:49
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
Funcionoooo!!!!!

Gracias pabli , el problema estaba en que la apertura de la base de datos habia que hacerla en un modulo (fijate que tonteria)

y para terminar , tengo otra pequeña dudita. Ahora se muestra el datagrid con todos los campos bien, menos en la columna 1 (ó 0), vamos en la primera columna, que sale en blanco

¿porque puede ser?
  #11 (permalink)  
Antiguo 12/02/2004, 05:57
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
ni caso al ultimo post, ya lo he sacado, era otra tonteria con el datagrid.

Lo dicho muchas gracias pabli

un saludo
fenoy
  #12 (permalink)  
Antiguo 12/02/2004, 06:03
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:52.