Datagrid rebelde

Hola, tengo un formulario con un datagrid, y dos cuadros de texto, yo quiero mostrar en el datagrid los datos ingresados en las caja de texto. La secuencia es la siguiente:
Grabo el contenido de las dos cajas de texto en la base de datos.
Actualizo el recordsource del componente adodc que provee los datos para e l datagrid con una consulta SQL como esta "selec * from mybase".
Datagrid.rebind
Esto en teoría me tendría que mostrar todos los datos en la rejilla, pero no es así, el último registro que se ha grabado en la base de datos no me aparece hasta que vuelvo a grabar otro, entonce me aparece, pero no el que acabo de ingresar en la base de datos.
Lo curioso es que todos estos componentes los tengo en eu SStab y si pulso en una de las pestañas y después vuelvo a la misma si me aparecen todos los datos en la rejilla.
El código es el siguiente:
Adodc1.RecordSource = "Select * from mybase"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
MuestraFactura
End If
Set dtgCargos.DataSource = Adodc1
dtgCargos.Refresh
dtgCargos.ReBind
El programa esta en VB60 con SP4 y la base de datos es Access 97
He mirado en la ayuda del VB pero no he visto nada que me pueda ayudar y en los cuatro o cinco libros que tengo de este lenguaje tampoco he visto nada sobre el particular.
Bueno quizá sea debido a que soy un novato con el VB mi anterior lenguaje era el Clipper.
Gracias anticipadas y un saludo desde Ourense
José Luis Uceda.

1 Respuesta

Respuesta
1
No creo que pueda ayudarte con el DataGrid, este tipo de controles enlazados a datos no me gustan, siempre hacen cosas raras como lo que te hace a ti..., y es muy difícil encontrar el porque...
Mi consejo es que lo sustituyas por una Lista, mejor un ListView, que casi te ofrece las mismas posibilidades..., el código no cambiaría mucho solo que tendrías que hacer un bucle después de abrir la consulta, para añadir uno a uno todos los registros...
Si vienes de Clipper, entonces el ListView te recordará a los objetos TBrowse. :)
Gracias por tu consejo, esa solución ya la había pensado yo, pero la pregunta era ya más por curiosidad, por saber si era por mi desconocimiento en la materia ya que en esto soy un novato. Un saludo. Jose Luis Uceda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas