CLR: .Net / Mono / Boo / Otros CLR > VB .NET
VB.NET + ACCESS Como Eliminar un Registro
(1/1)
datawox:
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.220basesdedatosAgenda.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.
fm89-10:
el problema que podrias tener es que usas la consulta de eliminarRegistro dos veces.
una es con el
--- Código: vb.net ---da = New OleDbDataAdapter(EliminarRegistro, conexion) y la otra es con el
--- Código: vb.net ---Dim cmd As New OleDbCommand(EliminarRegistro)
en la primera consulta te lo elimina bien, pero en la segunda lo quieres volver a eliminar y no le pasas la conexion. y ese podria ser tu error.
--- Citar ---Lanza el siguiente Error
Titulo: Conectar con la base
ERROR al conectar o recuperar los datos:
ExecuteNonQuery: la propiedad Connection no se ha inicializado
--- Fin de la cita ---
te dejo esta otra forma de hacerlo a ver si te funciona
--- Código: vb.net --- Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click TryDim cmd As New OleDbCommand(EliminarRegistro,conexion)cmd.ExecuteNonQuery() 'Crear un nuevo objeto del tipo DataAdapterda = New OleDbDataAdapter(TdatosNombre, conexion) 'Crear los comandos de insertar, actualizar y eliminarUsing cb As New OleDbCommandBuilder(da)da.Fill(dt) 'Llenar la tabla con los datos indicadosWith dgvDatos' alternar color de filas.AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite.DefaultCellStyle.BackColor = Color.RosyBrown' Establecer el origen de datos para el DataGridview.DataSource = dtEnd With End Using Catch ex As ExceptionMessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & _ex.Message, "Conectar con la base", _MessageBoxButtons.OK, MessageBoxIcon.Error)End Try
Navegación
Ir a la versión completa