Dudas sobre ADO y Visual Basic 6.0

Hola.
Estoy trabajando con una bb.dd. Y utilizo un "Dataenvironment" para enlazarla mediante un control "Datagrid".
He creado varios comandos para asignarlos cada uno a una tabla de la bb.dd.
Mi problema es que no consigo visualizar los datos en el datagrid de la tabla que yo quiero en cada momento.
En el formulario, ademas del datagrid, tengo 2 opciones en un menu, las cuales sirven para cambiar de una tabla a otra a modo de 'Switch'(películas y video_juegos)que son 2 tablas de la bb.dd.
El código es el siguiente:
Private Sub peliculas_Click()
If DataGrid1.DataMember = "video_juegos" Then
DataGrid1.DataMember = "peliculas"
Set DataGrid1.DataSource = Dataenvironment1.rspeliculas
DataGrid1.Refresh
End If
End Sub
Private Sub juegos_Click()
If DataGrid1.DataMember = "peliculas" Then
DataGrid1.DataMember = "video_juegos"
Set DataGrid1.DataSource = Dataenvironment1.rsjuegos
DataGrid1.Refresh
End If
End Sub
NOTA: Los nombres de las tablas son 'peliculas' y 'video_juegos'
Los nombres de los comandos son: 'peliculas' y 'juegos'
La cuestión es que no me da error, al principio si me salen los datos de la tabla 'peliculas' (ya que en el diseño el datagrid esta enlazado a ella y no a 'video_juegos'), pero cuando clickeo en el menu para cambiar a la otra tabla ya no sale nada.
¿Qué es lo tengo que hacer para mostrar distintas tablas en el mismo datagrid?
Por cierto también he notado, en una de las miles de pruebas que he hecho, que la ppiedad 'datamember' del datagrid a veces se pone a ¿falso? Y no se que puede ser, vamos como si diera error o algo de eso...
Bueno sin más, me despido.
Gracias anticipadas.

2 respuestas

Respuesta
1
Te falta cerrar el recordser antes de asignarle el otro..
Prueba así:
Private Sub juegos_Click()
If DataGrid1.DataMember = "peliculas" Then
***Dataenvironment1.rspeliculas.close
***Dataenvironment1.rsjuegos.open
DataGrid1.Refresh
End If
End Sub
Respuesta
LO que se me ocurre es lo siguiente:
Quita en tiempo de diseño al datagrid la propiedad DataSource, dejala en blanco, y en el evento Load de la forma o cuando hagas clic en el menu entonces enlazas el datagrid al Dataenvironment.
Cuando vayas a cambiar de tabla:
datagrid1.datasource=""
datagrid1.Refresh
datagrid1.datasource=dataenvironment1.rsjuegos
Datagrid1. Refresh
Es lo que se me ocurre
Saludos
Roberto Alvarado
Cartagena - Colombia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas