Modificación de datos usando un DataGrid

Resulta que tengo que hacer una rutina para cambiar 1 o más notas de uno o más alumnos, entonces utilizo la siguiente sentencia SELECT aplicada al metodo RecordSource del control adodc: adodc.RecordSource="SELECT Alumnos.carnet, Alumnos.apellidos, Alumnos.nombres, Calificaciones.nota FROM Calificaciones INNER JOIN Alumnos ON Calificaciones.alumno = Alumnos.carnet WHERE Alumnos.grado='" & grado & "' AND Calificaciones.asignatura='" & asignatura & "' ORDER BY Alumnos.apellidos,Alumnos.nombres"
Adodc. Refresh
Esto me devuelve la información que quiero en el DataGrid... Pero cuando yo cambio por ejemplo un 0 a un 90 de un alumno POR, me cambio al alumno Z y cambio un 90 por un 60... Cambio de alumno, cierro la ventana... Los cambios aparentemente fueron realizados, pero cuando imprimo un reporte de calificaciones los cambios NO fueron hechos a la BD y las calificaciones permanecen como estaban (alumno X: 0 y Alumno Z: 90).
¿Qué puedo o qué se me está olvidando hacer para que los cambios de calificaciones que realize realmente se graben a la base de datos?
Ya lo hice desde Access y allí si funciona, cambia la calificación sin ningún problema, pero desde VB no.
Por tu ayuda... Muy agradecido.
PD. BD en Access 2000 y conexión mediante ODBC.

1 Respuesta

Respuesta
1
Falto indicar la versión de visual basic que se utiliza en tu desarrollo, pero puedes intentar primero el instalar el último service pack que se tenga para tú versión de visual basicy y ver si esto arregla el problema. Lo que puedo comentar también es lo siguiente, nunca utilizo datacontrols porque presentan problemas de esta forma que comentas. Todo lo realizo mediante código y yo lo resolvería tryendo la información requerida de los alumnos en un grid y tendría una columna que me indique que cambie algo de un registro en particular y al final un botón para salvar los cambios.
Con respecto a lo que haces con el datacontrol no sé si tienes un update o algo relacionado para que mande a registrar los cambios realizados en la base de datos de access.
e-mail: [email protected]
La versión de VB que utilizo es la 6.0 con el SP 3 instalado, pues los otros son para win2k o XP y yo tengo el Win98 SE.
Si quisiera hacer esto mediante código, ¿cómo lo tendría que hacer?
Gracias por tu ayuda.
No necesariamente son para versiones superiores de sistemas operativos, son para actualizar problemas que tiene visual basic, el último service pack es el 5 y según me acuerdo resuelve muchos problemas de los controles enlazados con datos. Tendrías que planear la forma en la que vas a interactuar con la base de datos y como vas a ir actualizando los datos, la manera más sencilla que se usa, es la de tipo de hoja de excel que usas, pero tiene los problemas. Una forma es seleccionar el alumno a trabajar y posteriormente de presentar y preguntar los cambios a realizar, mandar actualizar la tabla con los nuevos datos buscando al alumno seleccionado, es más lento pero mucho más seguro, porque solo tienes un alumno al tiempo. La segunda opción es traer todos los datos requeridos tal y como lo haces y colocarlos en un flexgrid de microsoft, después tener una columna extra que indique que se hizo un cambio en el registro seleccionado (oculta para el usuario) y después recorrer el flexgrid y mandar sentencias de actualización por registro utilizado a la base datos.
e-mail: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas