Guardar Cambios Nuevo Registro
Publicado por Sherezade (7 intervenciones) el 30/06/2008 15:33:54
Buenas tardes.
Les comento la causa de mi gran atasco, por si pudieran echarme una mano.
Tengo una pequeña aplicación. En el formulario de creación de nuevos registros, cuento con varios checkbox, de los cuales, el campo "Activo", quiero que sea true de forma predeterminada. Fisicamente, lo consigo, pero al guardar los cambios me guarda todos menos este, me lo guarda como false.
Por otro lado, para facilitar la introdución de datos, tengo un botón, que al presionar, me abre un formulario de búsqueda con un datagridview (utilizo VB 2005 y Access - antes de que se me olvide mencionarlo-). Al hacer doble click, el formulario se cierra y los datos aparecen en el formulario principal de creación de registros.
Todo, tanto guardar los cambios del checkbox, como que me muestre los datos del formulario de búsqueda, me funciona correctamente si estoy modificando el registro, pero no cuando lo creo.
Les muestro el código que estoy utilizando:
cn.ConnectionString = Origen
cn.Open()
da = New OleDb.OleDbDataAdapter("Select * from Alb order by id", cn)
dacli = New OleDb.OleDbDataAdapter("Select * from Clientes", cn)
da.Fill(ds, "Alb")
dacli.Fill(ds, "Clientes")
Dim claves(0) As DataColumn
claves(0) = New DataColumn
claves(0) = ds.Tables("Alb").Columns("ID")
ds.Tables("Alb").PrimaryKey = claves
Dim cb As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
cn.Close()
Me.cboAgencia.DataSource = DS.Tables("clientes")
Me.cboAgencia.DisplayMember = "cliente"
Me.cboAgencia.ValueMember = "IdCliente"
Me.txtId.DataBindings.Clear()
Me.ckActiva.DataBindings.Clear()
------------------------------
bs.DataSource = ds
bs.DataMember = "Alb"
Me.txtId.DataBindings.Add(New Binding("text", bs, "ID", True))
Me.ckActiva.DataBindings.Add(New Binding("CHECKED", bs, "ACTIVA", True))
----------------------------
Private Sub Nuevo()
bs.EndEdit()
bs.AddNew()
If ds.Tables("ID").Rows.Count > 1 Then
Me.txtId.Text = ds.Tables("Alb").Rows(ds.Tables("Alb").Rows.Count - 1).Item("id") + 1
Else
Me.txtId.Text = 1
End If
Me.ckActiva.CheckState = CheckState.Checked
Me.ckFacturado.CheckState = CheckState.Checked
``````````````````
Privates Sub Guardar()
bs.EndEdit()
If Not ds.GetChanges() Is Nothing Then
da.Update(ds, "Alb")
ds.AcceptChanges()
Me.statusAviso.Text = "Datos guardados..."
End If
Si alguien me pudiera echar una mano, me haría un gran favor. De todos modos, muchas gracias por vuestra atención
Saludos cordiales!!
Les comento la causa de mi gran atasco, por si pudieran echarme una mano.
Tengo una pequeña aplicación. En el formulario de creación de nuevos registros, cuento con varios checkbox, de los cuales, el campo "Activo", quiero que sea true de forma predeterminada. Fisicamente, lo consigo, pero al guardar los cambios me guarda todos menos este, me lo guarda como false.
Por otro lado, para facilitar la introdución de datos, tengo un botón, que al presionar, me abre un formulario de búsqueda con un datagridview (utilizo VB 2005 y Access - antes de que se me olvide mencionarlo-). Al hacer doble click, el formulario se cierra y los datos aparecen en el formulario principal de creación de registros.
Todo, tanto guardar los cambios del checkbox, como que me muestre los datos del formulario de búsqueda, me funciona correctamente si estoy modificando el registro, pero no cuando lo creo.
Les muestro el código que estoy utilizando:
cn.ConnectionString = Origen
cn.Open()
da = New OleDb.OleDbDataAdapter("Select * from Alb order by id", cn)
dacli = New OleDb.OleDbDataAdapter("Select * from Clientes", cn)
da.Fill(ds, "Alb")
dacli.Fill(ds, "Clientes")
Dim claves(0) As DataColumn
claves(0) = New DataColumn
claves(0) = ds.Tables("Alb").Columns("ID")
ds.Tables("Alb").PrimaryKey = claves
Dim cb As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
cn.Close()
Me.cboAgencia.DataSource = DS.Tables("clientes")
Me.cboAgencia.DisplayMember = "cliente"
Me.cboAgencia.ValueMember = "IdCliente"
Me.txtId.DataBindings.Clear()
Me.ckActiva.DataBindings.Clear()
------------------------------
bs.DataSource = ds
bs.DataMember = "Alb"
Me.txtId.DataBindings.Add(New Binding("text", bs, "ID", True))
Me.ckActiva.DataBindings.Add(New Binding("CHECKED", bs, "ACTIVA", True))
----------------------------
Private Sub Nuevo()
bs.EndEdit()
bs.AddNew()
If ds.Tables("ID").Rows.Count > 1 Then
Me.txtId.Text = ds.Tables("Alb").Rows(ds.Tables("Alb").Rows.Count - 1).Item("id") + 1
Else
Me.txtId.Text = 1
End If
Me.ckActiva.CheckState = CheckState.Checked
Me.ckFacturado.CheckState = CheckState.Checked
``````````````````
Privates Sub Guardar()
bs.EndEdit()
If Not ds.GetChanges() Is Nothing Then
da.Update(ds, "Alb")
ds.AcceptChanges()
Me.statusAviso.Text = "Datos guardados..."
End If
Si alguien me pudiera echar una mano, me haría un gran favor. De todos modos, muchas gracias por vuestra atención
Saludos cordiales!!
Valora esta pregunta


0