Como guarda,
modificar, eliminar informacion en "Access" mediante V.B
- Lo primero que debemos hacer es ir a crear una tabal en Acces , dando clic en la pestaña vista de diseño, y agragas los campos que necesites. Como por ejemplo:
- Yo, a mi tabla la llame pasaporte y agrega los campos que necesita mi tabla, les di el tipo de dato que les corresponde a cada uno de los campos, es importante también agregar una breve descripción de los que es cada uno de los campos, en mi caso no lo hice pero ustedes lo pueden hacer. Recuerden siempre identificar la identidad con una clave principal ya que es un campo único y el tipo de dato será autonumerico. Cuando termines seleccionas la pestaña "Ver hoja de datos" y les mostrara como quedo estructurada su tabla.
- Luego nos vamos a abrir un nuevo proyecto en Visual Basic y seleccionamos "Agregar Windows Form" en el formulario que nos da V.B con el cuadro de herramientas pegamos los Label, Texbox, Combobox, button etc. Dependiendo cual le corresponda a el campo.
- Para que la información que ingresemos en el formulario se envíe a Access escribimos el siguiente código en el formulario dando doble clic en el formulario.
Public Class Form1
Dim Cadena As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=F:\EjercicioPasaporte\Ejercicio Pasaporte.accdb"
Private Function
Validar() As Boolean
'Datos Personales
If
txtidentidad.Text.Trim = String.Empty Then
Erp.SetError(txtidentidad, "Escriba
la Identidad")
txtidentidad.Focus()
Return
False
End If
Erp.SetError(txtidentidad, "")
If
txtNombres.Text.Trim = String.Empty Then
Erp.SetError(txtNombres, "Escriba
el Nombre")
txtNombres.Focus()
Return
False
End If
Erp.SetError(txtNombres, "")
If
txtapellidos.Text.Trim = String.Empty Then
Erp.SetError(txtapellidos, "Escriba
el Apellido")
txtapellidos.Focus()
Return
False
End If
Erp.SetError(txtapellidos, "")
If
txtCiudad.Text.Trim = String.Empty Then
Erp.SetError(txtCiudad, "Escriba
la Cuidad")
txtCiudad.Focus()
Return
False
End If
Erp.SetError(txtCiudad, "")
If
txtDepartamento.Text.Trim = String.Empty Then
Erp.SetError(txtDepartamento, "Escriba
el Departamento")
txtDepartamento.Focus()
Return
False
End If
Erp.SetError(txtDepartamento, "")
If
txtDuración.Text.Trim = String.Empty Then
Erp.SetError(txtDuración, "Escriba
la Duración del Pasaporte")
txtDuración.Focus()
Return
False
End If
Erp.SetError(txtDuración, "")
Return True
End Function
- Este código también valida cada uno de los campos en tu tabla.
- Para que Guarde y Modifique información en la tabla.
Private
Sub btnGuardar_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
btnGuardar.Click
'Boton
Guardar
If
Validar() = True Then
Dim
fecha As String
Dim
cSQLIns As String
If
txtidentidad.ReadOnly = False Then
'Agregar
Registro
cSQLIns = " Insert into Pasaporte(Identidad,Nombres,Apellidos,FechaNac,Ciudad,Departamento,FechaSoli,Duración)Values('"
& txtidentidad.Text.Trim & "','"
& txtNombres.Text.Trim & "','"
& txtapellidos.Text.Trim & "',#"
& DtpFechaNac.Value.ToShortDateString & "#,'"
& txtCiudad.Text.Trim & "','"
& txtDepartamento.Text.Trim & "',#"
& DtpFechaSoli.Value.ToShortDateString & "#,'"
& txtDuración.Text.Trim & "')"
Else
cSQLIns = " Update Pasaporte set Nombres ='" &
txtNombres.Text.Trim & "',
Apellidos='" & txtapellidos.Text.Trim & "', FechaNac=#" &
DtpFechaNac.Value.Month & "/"
& DtpFechaNac.Value.Day & "/"
& DtpFechaNac.Value.Year & "# ,
Ciudad='" & txtCiudad.Text.Trim & "',
Departamento='" & txtDepartamento.Text.Trim & "', FechaSoli=#" &
DtpFechaSoli.Value.ToShortDateString & "#,
Duración='" & txtDuración.Text.Trim & "' Where Identidad ='" &
txtidentidad.Text.Trim & "'"
End
If
Dim
oConexion As New
OleDb.OleDbConnection(Cadena)
oConexion.Open()
Dim
cmd As New
OleDb.OleDbCommand(cSQLIns, oConexion)
cmd.ExecuteNonQuery()
MsgBox("La Informacion Fue Almacenada
", MsgBoxStyle.OkOnly, "Guardar")
oConexion.Close()
Call
btnNuevo_Click(Nothing, Nothing)
End If
End Sub
- Al momento de guardar la fecha en Access ocurre un error que Access la guarda: mes/día/año y en V.B la escribimos: día / mes/año para arreglar este error nos vamos a la instrucción update y la escribimos así:
FechaNac=#" & DtpFechaNac.Value.Month & "/" & DtpFechaNac.Value.Day & "/" & DtpFechaNac.Value.Year & "#
- En nuestro caso ya la teníamos arreglada así que no habrá ningún cambio
- Para que elimine informacion:
Private Sub btnEliminar_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
btnEliminar.Click
Dim cSQL As String
cSQL
= " Delete From Pasaporte Where Identidad =
'" & txtidentidad.Text.Trim & "'"
Dim
oConexion As New
OleDb.OleDbConnection(Cadena)
oConexion.Open()
Dim
cOMANDO As New
OleDb.OleDbCommand(cSQL, oConexion)
cOMANDO.ExecuteNonQuery()
oConexion.Close()
MsgBox("La informacion a sido
eliminada")
Call btnNuevo_Click(Nothing,
Nothing)