Visual Basic - Control Ado Data y Datagrid: ayuda

Life is soft - evento anual de software empresarial
 
Vista:

Control Ado Data y Datagrid: ayuda

Publicado por José (3 intervenciones) el 29/08/2006 22:16:58
Hola:

Estoy conectando un Datagrid con un control Ado Data y tengo varios problemas:

1º) No logro que al pulsar las teclas de avance y retroceso del control Ado Data se seleccione un registro (fila). Lo he intentado de varias formas e incluso con los sucesos WillMove y Movecomplete, mediante varias instrucciones relacionando la selección del Datagrid y Adodc.Recorset, pero lo único que logro es que se mueva el cursor.

2º) Estoy trabajando con una tabla de Access y agrego registros. El problema es que enlazo un ComboBox con la tabla (los items de un campo aparecen aquí) y me he dado cuenta que al pinchar en un registro de la tabla para seleccionarlo y que se sincronice con el item del ComboBox sucede lo siguiente:

*Suceso Datagrid:

combobox.setfocus
grdDataGrid1.RowHeight = 8
cboLocalidad.ListIndex = grdDataGrid1.Row
grdDataGrid1.RowHeight = 225
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

RE:Control Ado Data y Datagrid: ayuda

Publicado por christian (675 intervenciones) el 29/08/2006 22:21:35
seria mejor que nos muestres el codigo q utilizas para intentar mover tu control.
asi vemos que es lo que te falta o que es lo que le sobra a tu codigo.
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:Control Ado Data y Datagrid: ayuda

Publicado por José (3 intervenciones) el 29/08/2006 22:36:10
Lo siento, le di a la tecla TAB y me envió el mensaje incompleto:

Hola:

Estoy conectando un Datagrid con un control Ado Data y tengo varios problemas:

1º) No logro que al pulsar las teclas de avance y retroceso del control Ado Data se seleccione un registro (fila). Lo he intentado de varias formas e incluso con los sucesos WillMove y Movecomplete, mediante varias instrucciones relacionando la selección del Datagrid y Adodc.Recorset, pero lo único que logro es que se mueva el cursor.

2º) Estoy trabajando con una tabla de Access y agrego registros. El problema es que enlazo un ComboBox con la tabla (los items de un campo aparecen aquí) y me he dado cuenta que al pinchar en un registro de la tabla para seleccionarlo y que se sincronice con el item del ComboBox sucede lo siguiente:

*Suceso Datagrid_click:

combobox.setfocus
grdDataGrid1.RowHeight = 8
cboLocalidad.ListIndex = grdDataGrid1.Row
grdDataGrid1.RowHeight = 225

Si no pongo los cambios en la altura de las filas (RowHeight), cuando yo hago click en un registro de la tabla que no está en el "scrolling" inicial, selecciona el item de la tabla correspondiente a la fila de la tabla de los valores visibles iniciales. Esto que he hecho corrige parcialmente el problema (lo que hace es que todos los registros están durante un breve instante de tiempo en pantalla en la tabla y por supuesto no vale para registros gigantescos) y sí selecciona el registro marcado con el ratón en el DataGrid y en el ComboBox, pero en la tabla se ven los primeros registros y no el correspondiente que tras hacer un scrolling se observa resaltado.

Por otra parte, cambiando la línea: cboLocalidad.ListIndex = grdDataGrid1.Row por:
cboLocalidad.ListIndex = grdDataGrid1.getbookmark(-1), sucede que de no existir ningún registro agregado no hay ningún problema, pero en cuanto se añaden, la selección con el click no corresponde a lo que finalmente se resalta. Evidentemente el "bookmark" de cada registro fue cambiado, pues se hace una reordenación por los items del ComboBox, pero no sé cómo actualizar el bookmark (si se pudiera), pues creo que sería la mejor solución a todo esto.

Un saludo a todos. Soy un novato pero espero aprender. Gracias por la ayuda.

José.

Respondiéndote a ti Christian:

El control Ado Data se mueve perfectamente, pero lo que intento es que me resalte los registros del Datagrid cada vez que lo pulso.

Dentro de ComboBox_Click tengo esto:

Do While DataGrid.SelBookmarks.Count
DataGrid.SelBookmarks.Remove 0
Loop 'anula selecciones anteriores

If ComboBox.Text <> "Escriba una población" Then
'selecciona la fila de DataGrid según la población de ComboBox
DataGrid.SelBookmarks.Add DataGrid.GetBookmark (comboBox.ListIndex)
End If

Por tanto me imagino que necesito un suceso para Adodc. Lo he probado todo, no tengo código para esto, debería ser algo en la línea de lo anterior.

Saludos y gracias,

José.
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:Control Ado Data y Datagrid: ayuda

Publicado por christian (675 intervenciones) el 29/08/2006 22:46:07
respecto a la primera pregunta de que no se refleja el movimiento en el datagrid

has probado refrescando luego de que se hace el movimiento de registro en el control data.

por ejmplo prueba refrescando asi:

datacontrol1.refresh
datagrid1.refresh
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:Control Ado Data y Datagrid: ayuda

Publicado por christian (675 intervenciones) el 29/08/2006 22:54:16
mirate esto:
http://www.monografias.com/trabajos24/visual-basic/visual-basic.shtml

esta es la correcta forma de como usar ado
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:Control Ado Data y Datagrid: ayuda

Publicado por José (1 intervención) el 29/08/2006 23:35:05
Lo siento, he probado refrescando el Adodc y DataGrid en Datagrid_click y no funciona. He probado en varios sucesos de Adodc y se ha colgado VB6.

Gracias por la referencia de la página.

Antes de preguntar esto he estado consultando en libros muy buenos como "Programación avanzada con MS Visual Basic" de Francesco Balena y no he encontrado esto.
Ni tampoco...
¿Cómo hacer que el bookmark señale a los registros según se van actualizando (ordenados según un campo) y no como se agregaron en un principio?
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