Visual Basic - Conectar DBGrid a BD "por código"

Life is soft - evento anual de software empresarial
 
Vista:

Conectar DBGrid a BD "por código"

Publicado por tony (18 intervenciones) el 09/08/2003 17:27:52
Un saludo, una pregunta sobre el DBGrid, sabría usted solucionar una conexión de un DBGrid a un BD que se conecta a un Data pero que sea conexión por Código.

'Ejemplo:
Data1.DatabaseName=(App.path + "\BaseDatos.mdb")
Data1.RecordSource= SQL
DBGrid1.DataSource = Data1 ' => Error en esta línea.

Aviso:
Error '430' en tiempo de ejecución:
Esta clase no admite Automatización o no admite la interfaz esperada

Realmente la idea es o era conectar el DBGrid a la BD sin el uso de algún control (como el Data) pero al parecer, no es posible, ahora lo que si desearía que fuese, es que sea por la ventana dé código y no por las propiedades del VB.

Me han indicado que coloque Set al comienzo de la línea de código que da el error, pero el error sigue apreciendo igual.

Cualquier posible solución al problema es de agradecersele, por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Conectar DBGrid a BD

Publicado por Iñaki (502 intervenciones) el 09/08/2003 18:26:35
Si quieres utilizar el DBGRID, efectivamente tienes que utilizar el control DATA, y es a este control al que hay que cambiarle las propiedades. Tienes el codigo bien, salvo un pequeño detalle.
Despues de Data1.Recordsource= sql
Data1.Refresh
Dbgrid1.Rebind ' esto lo que hace recuperar los campos adaptando a la nueva fuente de datos.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conectar DBGrid a BD

Publicado por tony (53 intervenciones) el 09/08/2003 19:36:34
Gracias Sr. Iñaki, su asesoria con respecto al problema del DBGrid tiene sentido. Pero me disulpo por la falta del DBGrid1.ReBind porque si lo tengo al final, (es que se me pasó pornerlo en la nota).

El DBGrid1.ReBind si lo tengo en la ventana, el Data1.Refresh, no pero ya lo puse. Pero de igual forma, aun sigue sacando el error ya comentado.

Cualquier otra opinión alternativa que tenga sirve de idea a ver si el DBGrid hace lo pensado.

muchas gracias por su asesoria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conectar DBGrid a BD

Publicado por Esteban (1144 intervenciones) el 09/08/2003 21:03:10
Algo de interés es que si asignas objetos a objetos debes anteponer "set"

set dbgrid.datasource = data1, yo no uso el rebind, es más mis conexiones no las hago con Data's, más bien, me conecto, consulto y doy de alta y baja por puro código, ya que los datas (datacontrol de DAO, ADODC y DataEnvironment) me han resultado un dolor de cabeza
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importante información que olvidé decir

Publicado por Esteban (1144 intervenciones) el 09/08/2003 21:07:42
Los datasource son por sí solos recordsets, debes entonces hacer esto:

set dbgrid.datasource = data1.recordset
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importante información que olvidé decir

Publicado por tony (53 intervenciones) el 09/08/2003 21:55:06
Muchas gracias amigo Esteban, ya no da error, fiese que algo raro es que tanto en ese proyecto que tengo hecho, que ya está casi listo a exepción de la conexión de los DBGrid.

Un ejemplo de lo que tengo mire:
Data1.DatabaseName = "C:\BD.mdb"
Data1.RecordSource = ("Select [Apellidos y Nombres] From Socios")
Set DBGrid1.DataSource = Data1.Recordset
Data1.Refresh
DBGrid1.ReBind

pero no sé porqué el DBGrid no muestra aun los registros.
Abrí un nuevo proyecto de Visual Basic para hacer una prueba de un Form y un DBGrid con un Data enlazados a la misma BD y el DBGrid, no sé qué pasa.

En el DBGrid del proyecto (casi listo) como ejemplo le ingresé 2 registros, el DBGrid si muestra dos filas (los 2 registros) pero lo muestra vacio, muestra las dos filas vacías, no muestra la informacion, pero cuando hago una consulta o voy a Access para ver los registros, si están, pero entonces ¿no sé porque el DBGrid no lo muestra? al menos ya muestra las dos filas. Si ingreso 3 registros, entonces muestra 3 filas, pero vacias... ¿?

Por lo menos mientras ya no saque avisos de error es muy bueno, no sé si es que al Data1.DataSource le falte algo, no creo porque al aregarle entonces si da error, así como usted me ha indicado está mejor que como lo tenía antes.

Tendría alguna otra buena opinión como la anterior para ver si el DBGrid muestra los registros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importante información que olvidé decir

Publicado por tony (53 intervenciones) el 10/08/2003 17:13:50
Listo ya sale, lo único que tenía que poner en código era esto:
Data1.DatabaseName=("Ruta de la BD")
Data1.RecorSource=SQL
y el DBGrid lo conecto al Data por medio de las propiedades del VB, ya que por código no sacaba nada.

Muchas gracias por su ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar