Introducir datos desde un textbox a una base access en vb.net

La idea basica es utilizar un 'bindingsource' y un commandbuilder para tu adataptador de datos, a partir de este concepto es tan simple como añadir un 'datarow' o registro a tu tabla de datos 'datatable' cada vez que pulsamos 'enter' y la longitud de los datos introducidos es mayor de cero. Posteriormente para actualizar o añadir los registros del 'datatable' a la BD de access utilizaremos el mandato 'update' (al pulsar un boton en nuestro caso), o asociado al momento que consideres oportuno.

Puedes descargarte este ejemplo haciendo click en 'attachments'

Imports System.Data.OleDb
Imports System.Data.DataRow

Public Class Form1
 
Private MiConexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\bd1.mdb")
 
Private MiAdaptador As New OleDbDataAdapter("SELECT * FROM Nombres", MiConexion)
 
Private MiDataSet As New DataSet()
 
Private MiEnlazador As New BindingSource

  Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
   
If (e.KeyChar = Chr(Keys.Enter)) And (Me.TextBox1.Text.Length > 0) Then
     
Dim nombre As DataRow
      nombre = MiDataSet.Tables(0).NewRow()
      nombre(
"Nombre") = TextBox1.Text
      MiDataSet.Tables(0).Rows.Add(nombre)
     
Me.TextBox1.Text = ""
     
Me.ComboBox1.SelectedIndex = Me.ComboBox1.Items.Count – 1
   
End If
 
End Sub

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   
Dim commandbuilder As New OleDb.OleDbCommandBuilder(Me.MiAdaptador)
    MiConexion.Open()
    MiAdaptador.Fill(MiDataSet)
    MiEnlazador.DataSource = MiDataSet.Tables(0)
   
Me.ComboBox1.DataSource = MiEnlazador
   
Me.ComboBox1.DisplayMember = "Nombre"
   
Me.ComboBox1.ValueMember = "Id"
   
Me.TextBox1.Select()
 
End Sub

  Private Sub Guardar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   
Me.MiAdaptador.Update(CType(Me.MiEnlazador.DataSource, DataTable))
 
End Sub

Espero que sea de tu utilidad.
Pep Lluis,

7 thoughts on “Introducir datos desde un textbox a una base access en vb.net”

  1. Me fue de gran ayuda para unas cosas q tenia pensado ojala me puedas ayudar en algunas otras cosas mas vere que mas puedo ver jejeje y tomar para un proyecto

  2. Me fue de mucha ayuda… lo unico es que estoy teniendo problemass para agregar otro textbox.. son textos en 3 textbox, 1 datetimepicker y 1 combobox….
    pero ya probe con solo 2 textbox.. y me agrega 2 rows en el access.. en vez de solo una.
    pero gracias!
    logre ya mucho! de lo que no podia

  3. Hola tengo el siquiente codigo que lo armé basandome en el ejemplo de este post y la verdad que no me tira ningún error pero tampoco me graba la base de datos.
    Alguien me podría decir que es lo que tengo mal o lo que me falta para que me grabe los datos en la base de datos.
    Desde ya muchas gracias.
    Aca les dejo el código

    Public cn As New OleDbConnection(String.Format(“Provider=Microsoft.jet.OLEDB.4.0; Data Source=” + My.Application.Info.DirectoryPath + “\Sueldos y Jornales.mdb;”))

    Private da As New OleDbDataAdapter(“SELECT * FROM EMPLEO”, cn)
    Private bs As New BindingSource

    Private Sub BotonGrabarEmpleo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonGrabarEmpleo.Click
    Dim ds As New DataSet
    da.Fill(ds)
    bs.DataSource = ds.Tables(0)
    Dim dr As DataRow
    dr = ds.Tables(0).NewRow()
    dr(“APELLIDO”) = Nuevo_Empleado.TextBoxApellidoEmpleado.Text
    dr(“NOMBRE”) = Nuevo_Empleado.TextBoxNombreEmpleado.Text
    dr(“CONVENIO”) = ComboBoxConvenioEmpleado.Text
    dr(“CATEGORIA”) = ComboBoxCategoriaEmpleado.Text
    dr(“FECHA_INGRESO”) = DateTimePicker1.Text
    If DateTimePicker2.Text < “31/12/3000″ Then
    dr(“FECHA_EGRESO”) = DateTimePicker2.Text
    End If
    Dim Tipo_de_Liquidacion As String
    If RaBotonJoranlizadoEmpleado.Checked = True Then
    Tipo_de_Liquidacion = “Jornalizado”
    Else
    Tipo_de_Liquidacion = “Mensualizado”
    End If
    dr(“TIPO_DE_LIQUIDACION”) = Tipo_de_Liquidacion
    Dim Legajo_Interno As String
    Legajo_Interno = Nuevo_Empleado.TextBoxLegajoEmpleado.Text + ” / ” + Trim(Str(Val(ComboBoxConsorcioEmpleado.Text)))
    dr(“LEGAJO_INTERNO”) = Legajo_Interno
    dr(“CONSORCIO”) = ComboBoxConsorcioEmpleado.Text
    dr(“FUNCION”) = ComboBoxFuncionEmpleado.Text
    ds.Tables(0).Rows.Add(dr)
    Me.da.Update(CType(Me.bs.DataSource, DataTable))
    If DateTimePicker2.Text < “31/12/3000″ And ComboBoxConvenioEmpleado.SelectedIndex = 1 Then
    If MsgBox(“Desea Imprimir la Carta de Aviso de Suplencia para el Consorcio”, MsgBoxStyle.YesNo, “Cartas Suplencia”) = MsgBoxResult.Yes Then
    Cartas_Suplencia.Show()
    End If
    End If
    Me.Close()
    End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>