Visual Basic.NET - VB.NET - ACCESS como eliminar registros

 
Vista:
Imágen de perfil de Laura

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VB.NET - ACCESS como eliminar registros

Publicado por Damian (824 intervenciones) el 16/04/2010 16:03:40
Tu problema esta en la declaración de la conexión ya que te falta pasarle la cadena de conexion al OleDb, deberia ser algo asi:

Public conexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\192.168.44.220\basesdedatos\Agenda.accdb;Persist Security Info=False")

'Esto deberias agregar
Public Miconexion As New OleDbConnection(conexion)

'No te olvides de poner Miconexion en tu dataadapter:

da = New OleDbDataAdapter(EliminarRegistro, Miconexion)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar