Insert Into no me guarda registro en access vb2005

Hola, soy nuevo por aquí y esta es mi primera pregunta, apenas me inicio en esto de la programación así que pido compresión si mis preguntas son mal elaboradas o las respuestas demasiado obvias.
Mi problema con este código es que no me guarda los registros en access, los visualiza en el DataGridView, pero cuando abro access para confirmar si se guardaron los datos no aparecen. (No muestra mensajes de error)
Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As New OleDbConnection
conn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Agenda.mdb")
conn.Open()
Dim sql As String
sql = "Insert Into DatosPersonales( Nombre, Apellidos, FechaNacimiento) values('" & TxtNombre.Text.Trim _ & "','" & TxtApellidos.Text.Trim & "'," & MkdFechaNacimiento.Text & ")"
Dim Cmd As New OleDbCommand(sql, conn)     
Cmd.ExecuteNonQuery()
Dim da As New OleDbDataAdapter("SELECT *FROM DatosPersonales", conn)
Dim ds As New DataSet
da.Fill(ds, "DatosPersonales")
DgvNuevo.DataSource = ds
DgvNuevo.DataMember = "DatosPersonales"
DgvNuevo.Refresh()       
conn.Close()
Call limpiar()
End Sub

1 respuesta

Respuesta
1
Las fechas en access se deben colocar entre #, así que coloca este caracterer antes y después de la fecha, estos caracteres deben ir entre las comillas
Gracias por responder! Y por tu observación.
Realmente lo que necesito saber es que le falta a ese código para que me envíe los datos a access, ya que solo los visualiza en el DataGriedView.
Saludos
¿Acaso no graba los datos?
¿En qué linea grabas? ¿Y cuál no funciona?
Hola de nuevo
Acabo de detectar el problemilla, sucede lo siguiente:
a) cuando en el paht de la conexion Data Source = |DataDirectory| 'no guarda los cambios aunque tenga la base de datos en la carpeta del Proyecto.
conn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Agenda.mdb")
b) cuando en el paht de la conexion Data Source = C:\Agenda.mdb (o cuarquier ) 'de esta manera si envia los datos a la base de datos, es decir los envia solo cuando la base de datos esta fuera de la carpeta del proyecto o cuando se especifique la ruta completa de la carpeta del Proyecto
El inconveniente de esta ultima forma es que si ejecuto mi aplicación en otro equipo posiblemente generara un error porque el path no va ha coincidir.
Yo non estoy seguro que en tu cadena de conexión:
conn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Agenda.mdb")
|DataDirectory| esto funcione....
Mas bien utiliza: Application.ExecutablePath y tu conexion quedaria como algo asi:
conn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &   Application.ExecutablePath & "\Agenda.mdb")
Bueno ya para finalizar
|DataDirectory| : al ejecutar la aplicacion desde el MDI crea una copia de la base de datos (Agenda.mdb) en el directorio ...bin\Debug y es ahí donde se guardan los datos no en la base de datos(Agenda.mdb) que se encuentra en el directorio que genera por defecto la aplicacion.
Te agradezco por dar seguimiento a mi interrogante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas