VB.NET - ACCESS como eliminar registros
Publicado por Laura (1 intervención) el 16/04/2010 09:48:12
Tengo un modulo con lo siguiente:
================================================================
================================================================
'Importamos los namespaces
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms.Form
Module Conexiones
'Variables
Public dt As DataTable
Public da As OleDbDataAdapter
'Conexión con la mdb
Public conexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\192.168.44.220\basesdedatos\Agenda.accdb;Persist Security Info=False")
'La cadena de selección, una por cada Tabla que queramos abrir
Public TdatosId As String = "SELECT Id,Nombre,Cp,Poblacion,Tel1,Tel2,Mov1,Mov2,Mail FROM Datos ORDER BY Id"
Public TdatosNombre As String = "SELECT * FROM Datos ORDER BY Nombre"
Public EliminarRegistro As String = "DELETE FROM Datos WHERE Id=4"
End Module
====================================================================
====================================================================
En el Evento clic de un boton con el cual quiero eliminar el registro con el Id=4…
====================================================================
====================================================================
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
Try
'Crear un nuevo objeto del tipo DataAdapter
da = New OleDbDataAdapter(EliminarRegistro, conexion)
'Crear los comandos de insertar, actualizar y eliminar
Using cb As New OleDbCommandBuilder(da)
Dim cmd As New OleDbCommand(EliminarRegistro)
da.Fill(dt)
cmd.ExecuteNonQuery()
'Llenar la tabla con los datos indicados
End Using
Catch ex As Exception
MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & _
ex.Message, "Conectar con la base", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
' propiedades del datagrid
' '''''''''''''''''''''''''''''''''''''
With dgvDatos
' alternar color de filas
.AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
.DefaultCellStyle.BackColor = Color.RosyBrown
' Establecer el origen de datos para el DataGridview
.DataSource = dt
End With
===================================================================
===================================================================
Lanza el siguiente Error
Titulo: Conectar con la base
ERROR al conectar o recuperar los datos:
ExecuteNonQuery: la propiedad Connection no se ha inicializado
Pero el regitro con el Id=4 lo elimina de la Base de Datos…
Alguien sabe como puedo depurar este código para que no lance el error?
O si lo puedo hacer mejor de otra forma?
Gracias.
================================================================
================================================================
'Importamos los namespaces
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms.Form
Module Conexiones
'Variables
Public dt As DataTable
Public da As OleDbDataAdapter
'Conexión con la mdb
Public conexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\192.168.44.220\basesdedatos\Agenda.accdb;Persist Security Info=False")
'La cadena de selección, una por cada Tabla que queramos abrir
Public TdatosId As String = "SELECT Id,Nombre,Cp,Poblacion,Tel1,Tel2,Mov1,Mov2,Mail FROM Datos ORDER BY Id"
Public TdatosNombre As String = "SELECT * FROM Datos ORDER BY Nombre"
Public EliminarRegistro As String = "DELETE FROM Datos WHERE Id=4"
End Module
====================================================================
====================================================================
En el Evento clic de un boton con el cual quiero eliminar el registro con el Id=4…
====================================================================
====================================================================
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
Try
'Crear un nuevo objeto del tipo DataAdapter
da = New OleDbDataAdapter(EliminarRegistro, conexion)
'Crear los comandos de insertar, actualizar y eliminar
Using cb As New OleDbCommandBuilder(da)
Dim cmd As New OleDbCommand(EliminarRegistro)
da.Fill(dt)
cmd.ExecuteNonQuery()
'Llenar la tabla con los datos indicados
End Using
Catch ex As Exception
MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & _
ex.Message, "Conectar con la base", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
' propiedades del datagrid
' '''''''''''''''''''''''''''''''''''''
With dgvDatos
' alternar color de filas
.AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
.DefaultCellStyle.BackColor = Color.RosyBrown
' Establecer el origen de datos para el DataGridview
.DataSource = dt
End With
===================================================================
===================================================================
Lanza el siguiente Error
Titulo: Conectar con la base
ERROR al conectar o recuperar los datos:
ExecuteNonQuery: la propiedad Connection no se ha inicializado
Pero el regitro con el Id=4 lo elimina de la Base de Datos…
Alguien sabe como puedo depurar este código para que no lance el error?
O si lo puedo hacer mejor de otra forma?
Gracias.
Valora esta pregunta
0