Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Modificar base de dato y datagrid

Estas en el tema de Modificar base de dato y datagrid en el foro de Visual Basic clásico en Foros del Web. Hola gente estoy teniendo un problema a la hora de modificar una tabla de una BD , tengo enlazado un datagrid a textbox, para cuando ...
  #1 (permalink)  
Antiguo 11/09/2007, 06:44
Avatar de JCiernes  
Fecha de Ingreso: noviembre-2006
Mensajes: 74
Antigüedad: 17 años, 5 meses
Puntos: 0
Modificar base de dato y datagrid

Hola gente estoy teniendo un problema a la hora de modificar una tabla de una BD , tengo enlazado un datagrid a textbox, para cuando yo clickeo en un registro del dgrid y voy a el boton modificar se me habilitan las cajas de textos para que modifique los datos. El problema es cuando voy al boton grabar para guardar los cambio, me modifica siempre el primer registro de la tabla y no el que yo he elegido en el datagrid. si alguien me puede ayudar se lo agradesco

este es el codigo del boton Regrabar:

Private Sub cmdregrabar_Click()
Dim vprove As String
Dim var2 As Integer

' rsmatpri es el recordset que uso para recorrer la tabla materia prima

rsmatpri("sinonimo_matpri") = txtsinonimo.Text
rsmatpri("descrip_matpri") = txtdescripcion.Text
rsmatpri("stock") = txtstock.Text
rsmatpri("punto_pedido") = txtpunto.Text
rsmatpri("costo_matpri") = txtcosto.Text
vprove = dcbproveedor.Text

rsprove.Open "select id_prov from proveedor where nom_prov = '" & vprove & "'", cn1, adOpenDynamic, adLockOptimistic

If rsprove.EOF And rsprove.BOF Then
'El Recordset esta vació y no hay coincidencias.
Else
var2 = rsprove("id_prov")
End If

rsmatpri("id_prov") = var2

rsmatpri.Update
rsmatpri.MoveLast
rsmatpri.Close


End Sub
  #2 (permalink)  
Antiguo 12/09/2007, 08:18
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: Modificar base de dato y datagrid

el problema no está en el procedimiento de guardado (aunque no sé el porqué del Movelast de después del Update). El problema que tienes es que te estás haciendo un lío entre el control DATA que carga del DataGrid y el RecordSet que estás utilizando para modificar los datos. Supongo que, probablemente, debes tener la información del datagrid vinculada a un control DATA y que cuando haces click en el registro cargas el recordset 'rsmatpri' -> ahí tienes el problema. El control DATA está en el registro indicado y rsmatpri como lo acabas de cargar y , en el fondo, no tiene nada que ver con el control DATA está en el registro inicial. Tres posibles soluciones:

1. Controla la posición del control data y después de cargar el recordset, lo mueves hasta el registro indicado
2. Carga el recordset con una consulta SUPERESPECÍFICA para que solamente te cargue el registro que has seleccionado en la tabla
3. Olvídate de recordset y modifica directamente en el control data (esta, para mi, es la mejor solución)

Saludos
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:36.