Editar Base de datos Access desde Datagridview

Que tal programadores!! Bueno amigos hice esta nueva entrada gracias a una pregunta de uno de compañeros programadores que han seguido una de mis entregas. Bueno en esta vez vamos a editar los datos desde una grid y cuya consecuencia debe modificarse la base de datos. Si nos ponemos a ver las cosas no son diciles y para los que ya vieron mi entrada de Guardar datagrid en Base de datos Access mejor aún. Bueno tomado como base aquella entrada he preparado un pequeño ejemplo del tema: Miren la captura del programa:

 
 Si citamos los controles mostrados( ademas se citó el control "OpenFileDialog ") podemos elaborar el programa. Sin mas que alargar les dejo el codigo
De caracter publico: 



Public Class Form1
Dim connex As New ConectarBD

......End Class




Con el boton cargar:



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

With OpenFileDialog1

.Title = "Seleccionar base de datos"

.Filter = "Bases de Access (*.mdb)|*.mdb"

If .ShowDialog = DialogResult.OK Then

txtbaseDir.Text = .FileName

End If

End With

txtbaseDir.Text = GetSetting("SITLAZ_3", Me.Name, txtbaseDir.Name, Text)
' cmdconect_Click(AcceptButton, AcceptButton)
Dim tab As String = "SELECT * FROM Tden ORDER BY Brix"
connex.Conectar(txtbaseDir.Text, tab)
' tabla = connex.dt
DataGridView1.DataSource = connex.dt

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
End Sub


En el boton Actualizar:


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

connex.da.Update(connex.dt)

End Sub

La clase ConectarBD:

Imports System.Data

Imports System.Data.OleDb

Public Class ConectarBD

Public dt As DataTable

Public da As OleDbDataAdapter

Public fila As Integer

Public ds As New DataSet

Public Function Conectar(ByVal dirPath As String, ByVal tabla As String) As String

Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dirPath

' La cadena de selección

Dim sSel As String = tabla

' Comprobar si hay algún error

Try

' Crear un nuevo objeto del tipo DataAdapter

da = New OleDbDataAdapter(sSel, sCnn)

' Crear los comandos de insertar, actualizar y eliminar

Dim cb As New OleDbCommandBuilder(da)

' Como hay campos con caracteres especiales,

' al usarlos incluirlos entre corchetes.

cb.QuotePrefix = "["

cb.QuoteSuffix = "]"

' Asignar los comandos al DataAdapter

' (se supone que lo hace automáticamente, pero...)

' da.UpdateCommand = cb.GetUpdateCommand

da.InsertCommand = cb.GetInsertCommand

' da.DeleteCommand = cb.GetDeleteCommand

' Esta base de datos usa el ID con valores automáticos

' da.MissingSchemaAction = MissingSchemaAction.AddWithKey

dt = New DataTable

' Llenar la tabla con los datos indicados

da.Fill(dt)

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

Return Conectar

End Function

End Class


Si ejecutamos la aplicación:
Se puede elegir la base de datos access cualquiera, una vez cargada la bd y haciendo click en la grid podemos modificar directamente y luego click al boton actualizar.Para estar seguros si se ha hecho la actualizacion  cerremos la aplicacion y volvamos abrirla y constatemos los valores cambiados..Tu lo puedes hacer como una ventana nueva para modificar , la creatividad esta en ti, intentalo y si no sales me escriben para ayudarles..cuidense y nos vemos!

MI link:https://docs.google.com/open?id=0B-UGWA03tc5ZV2Jud0NrQ09jQmM

Comentarios

  1. Hola... soy un novato en vb.net y me han encomendado algunas tareas, entre ellas está el poder "controlar" información de un archivo acces a través de un datagridview, y justamente eso es lo que tu explicas, pero no se si me falta información, experiencia u otra cosa yno me funciona. ¿Podrias enviarme el proyecto a betamic@gmail.com ? desde ya muchas gracias.

    ResponderEliminar
  2. txtbaseDir.Text = GetSetting("SITLAZ_3", Me.Name, txtbaseDir.Name, Text)


    una pregunta el sutlaz_3
    de que se refiere ..?

    ResponderEliminar
    Respuestas
    1. hola que tal, primeramente gracias por visitar mi blog, toda esa linea de codigo que citas, es para grabar en memoria la ruta y una vez que la agregas la recuerda y no necesitas seguirla agregando, la database se inicias desde la ruta que se haya grabado en la caja de texto automaticamente. La palabra "SITLAZ_3" es particular al proyecto en mi caso es el nombre de mi aplicacion, en tu caso el nombre de la tuya, eso es todo si tienes alguna duda mejor hazlo a mi correo y te respondere oportunamente jossm04@gmail.com

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Imprimir directamente ReportViewer a impresora predeterminada

DevComponents DotnetBar 12.5.0.2

Metodo Iterativo Gauss-Seidel en Visual Basic