Foros del Web » Programación para mayores de 30 ;) » .NET »

Modificar cambios en Base Access desde DGrid

Estas en el tema de Modificar cambios en Base Access desde DGrid en el foro de .NET en Foros del Web. Bueno mi pregunta es la siguiente lleno un DataGrid con una consulta sql en el form, tengo un boton para que me actualice los datos ...
  #1 (permalink)  
Antiguo 25/11/2008, 06:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Modificar cambios en Base Access desde DGrid

Bueno mi pregunta es la siguiente lleno un DataGrid con una consulta sql en el form, tengo un boton para que me actualice los datos modificados en el DataGrid pero realmente no me modifica nada.


Public Class......
Dim Adaptador as New oledb.DataAdapter
Dim Dt as New DataTable

Private Sub MostrarDatos () // este procedimiento lo llamo desde el load del form

Dim Conexion as oledb.Connection
Dim Cmd as New Oledb.Command
Dim Cadena as String
Dim Faccan as integer

Conexion = New oledb.Connection ( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Cadena)

Try
Faccan = frmPagos.Faccan

Cmd.Connection = Conexion
Cmd.CommandText= "Select * From Pagos Where FAC = " & Faccan
Adaptador.SelectedCommand = Cmd
Adaptador.Fill(Dt)

DGV1.AutoGenerateColumns = True
DGV1.DataSource = Dt

Catch

End Try

End sub


Private Sub Actualizar_Click..........

Dim DBCommandBuilder as oledb.CommandBuilder
DBCommandBuilder = New oledb.CommandBuilder(Adaptador)
Adaptador.Update(Dt)

End Sub


End Class...


Bueno el tema es que no me modifica nada y me tira un error en la consulta sql aho si le paso que sea un comando en tabladirecta y que guarde en el datatable la tabla entera modifica sin problemas...
Alguien sabe como puedo solucionar esto.
  #2 (permalink)  
Antiguo 25/11/2008, 10:16
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: Modificar cambios en Base Access desde DGrid

Hola martinfabregues...

Yo creo que te falta hacer un For, While o lo que quieras para que recorras el grid y le mande los datos de los registros que quieres actualizar.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #3 (permalink)  
Antiguo 25/11/2008, 12:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Modificar cambios en Base Access desde DGrid

Si esa opcion la manejo, recorro la grilla y voy cambiando los valores que quiero.
Pero tiene que funcionar de esta forma porque la grilla esta enlazada al datatable por eso comentaba que si a el comando en lugar de indicarle una instruccion SQL lo pongo en tableDirect y le doy el nombre de la tabla puedo modificar perfectamente los datos. Por eso la duda
  #4 (permalink)  
Antiguo 25/11/2008, 15:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Modificar cambios en Base Access desde DGrid

Bueno Probe de otra forma y tampoco hay caso no me doy cuenta que estoy haciendo mal. Pego el codigo a ver si me ayudan

Dim Conn As OleDb.OleDbConnection
Dim Da As OleDb.OleDbDataAdapter
Dim Ds As New DataSet
Dim Cad As String
Dim Fila As Integer
Dim Id As Integer
Dim NumFacCan As Integer
Dim Fec As Date
Dim NumFac As Integer
Dim NumTic As Integer
Dim NumRem As Integer
Dim Imp As Decimal
Dim SQL As String

Cad = "Base.mdb"
Conn = New OleDb.OleDbConnection( _
"Provider=Microsoft.Jet.Oledb.4.0;" & _
"Data Source=" & Cad)
Try

SQL = "Select * From Pagos"
Ds = New DataSet
Da = New OleDb.OleDbDataAdapter(SQL, Conn)
Da.Fill(Ds)
For Fila = 0 To grd.RowCount - 1
Id = grd.Item(0, Fila).Value
NumFacCan = grd.Item(1, Fila).Value
Fec = grd.Item(2, Fila).Value
NumFac = grd.Item(3, Fila).Value
NumTic = grd.Item(4, Fila).Value
NumRem = grd.Item(5, Fila).Value
Imp = grd.Item(6, Fila).Value

For Each Registro As DataRow In Ds.Tables(0).Rows
If Registro("IDOP") = Id Then
Registro("FACCAN") = CInt(NumFacCan)
Registro("FEC") = Fec
Registro("NUMFAC") = CInt(NumFac)
Registro("NUMTIC") = CInt(NumTic)
Registro("NUMREM") = CInt(NumRem)
Registro("IMP") = CDec(Imp)
End If
Next
Dim DBCommandBuilder = New OleDb.OleDbCommandBuilder(Da)
Da.Update(Dt)
Next
Catch ex As Exception

End Try

End Sub


Me tira el mismo error que antes

{"Error de sintaxis (falta operador) en la expresión de consulta '((IDOP = ?) AND ((? = 1 AND FACCAN IS NULL) OR (FACCAN = ?)) AND ((? = 1 AND FEC IS NULL) OR (FEC = ?)) AND ((? = 1 AND NUMFAC IS NULL) OR (NUMFAC = ?)) AND ((? = 1 AND NUMTIC IS NULL) OR (NUMTIC = ?)) AND ((? = 1 AND NUMREM IS NULL) OR (NUMREM = ?)) AND '."}
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 09:21.