CLR: .Net / Mono / Boo / Otros CLR > VB .NET
modificar por sql
(1/1)
zumimoraes:
Hola a todos,
quisiera saber si alguien sabe decirme como modificar un campo de una bd access
Necesito vaciar un campo de hora y otro de fecha dejandolos en null
En Visual Basic introdusco la fecha y la hora con 2 datetimepicker.
Para que se pueda modificar algo ya guardado,
junto al boton guardar necesito agregar algo parecido a
if DateTimePickerHora.Checked = False Then
"campo hora = null"
end if
esto no lo logro decifrar, probe con DELETE y me vacia toda la tabla
INSERT INTO o UPLOAD no lo supe hacer
En BindingContext tampoco vi como vaciar un campo
Ya tengo el boton eliminar pero elimina la fila entera
El codigo es así:
Imports System.Data.OleDb
Public Class Form1
Public CNN As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=" & CurDir() & "Agenda.accdb")
Public DM As New OleDbDataAdapter("SELECT * FROM Tabla", CNN)
Public DS As New DataSet
Public DT As New DataTable
Public CB As OleDbCommandBuilder
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
DM.Fill(DS, "Medicamento01")
CB = New OleDbCommandBuilder(DM)
datetimepicker1.DataBindings.Add(New Binding("Text", DS, "Tabla.Campo1"))
datetimepicker2.DataBindings.Add(New Binding("Text", DS, "Tabla.Campo2"))
End Sub
Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
Me.BindingContext(DS, "Tabla").AddNew()
datetimepicker1.Value = Now
datetimepicker2.Value = Now
End Sub
Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
'BindingContext(DS, "Tabla").EndCurrentEdit()
''DM.Update(DS, "Tabla")
'DS.Tables("Tabla").AcceptChanges()
End If
End Sub
Private Sub EliminarToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EliminarToolStripMenuItem1.Click
Posicion = BindingContext(DS, "Tabla").Position
DS.Tables("Tabla").Rows(Posicion).Delete()
DM.Update(DS, "Tabla")
DS.Tables("Tabla").AcceptChanges()
End Sub
Gracias por cualquier ayuda que podias aportarme.
Thanatos-chan:
Segun tu codigo:
lo que necesitas hacer es un update, ya que si le das delete se lleva la fila entera.
debes usar la sub-rutina de modificacion
debes tener en cuenta que esta actualizando el registro adecuado
debes igualar a datetimepicker1.Value a null y guardar los cambios
debes darle refresh o cargar el query otra vez para ver los cambios.
--- Código: vb.net --- Imports System.Data.OleDbPublic Class Form1 'inicio de declaracion de variablesPublic CNN As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=" & CurDir() & "Agenda.accdb")Public DM As New OleDbDataAdapter("SELECT * FROM Tabla", CNN)Public DS As New DataSetPublic DT As New DataTablePublic CB As OleDbCommandBuilder'fin de declaracion de variables Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load DM.Fill(DS, "Medicamento01")CB = New OleDbCommandBuilder(DM)datetimepicker1.DataBindings.Add(New Binding("Text", DS, "Tabla.Campo1"))datetimepicker2.DataBindings.Add(New Binding("Text", DS, "Tabla.Campo2")) End Sub Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.ClickMe.BindingContext(DS, "Tabla").AddNew()datetimepicker1.Value = Nowdatetimepicker2.Value = NowEnd Sub Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click 'BindingContext(DS, "Tabla").EndCurrentEdit()''DM.Update(DS, "Tabla")'DS.Tables("Tabla").AcceptChanges() End IfEnd Sub Private Sub EliminarToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EliminarToolStripMenuItem1.Click Posicion = BindingContext(DS, "Tabla").PositionDS.Tables("Tabla").Rows(Posicion).Delete()DM.Update(DS, "Tabla")DS.Tables("Tabla").AcceptChanges() End Sub
zumimoraes:
debes usar la sub-rutina de modificacion
debes tener en cuenta que esta actualizando el registro adecuado
debes igualar a datetimepicker1.Value a null y guardar los cambios
debes darle refresh o cargar el query otra vez para ver los cambios.
Hola,
ese codigo que escribistes como comentario es el que uso.
Funciona perfectamente para cambiar una hora ya guardada. De 18:00 a 12:00 por ej.
Pero lo que no se hacer es borrarla, no se como escribir correctamente datetimepicker1.Value = null para que access no guarde ningun
dato de horario.
Quiero que el campo en access quede vacio o en null. Si en access el campo esta vacio, VB al leerlo para aplicarlo a
datetimepicker1 automaticamente deja datetimepicker1.checkbox = false . Esto seria lo mas correcto.
Gracias por la ayuda
Navegación
Ir a la versión completa