En este post, vamos a aprender a insertar registros en una tabla usando la sentencia SQL INSERT en VBA.
Es posible que, a veces, no tengamos los formularios asociados directamente a una tabla porque no nos interese, o simplemente queremos rellenar varias tablas de manera simultánea. En estos casos usaremos dicha sentencia, y seremos nosotros quienes controlemos cuando se transfieren los datos a las tablas.
En el archivo de ejemplo que he preparado (y se encuentra adjunto más abajo), tenemos una tabla llamada "Datos" y un formulario llamado "Datos personales".
La idea es que cuando cumplimentemos la información del formulario, y pulsemos el botón Enviar, los datos sean insertados en la tabla.
Para ello, el código que hay que añadir en el evento "Al hacer clic" del botón es el siguiente,
Private Sub Enviar_Click()
'Insertamos en la tabla Datos el nuevo cliente
Dim dbs As DAO.Database
Set dbs = CurrentDb()
DoCmd.SetWarnings False
Dim datosSQL As String
datosSQL = "INSERT INTO Datos ([nombre],[apellidos],[edad],[telefono]) VALUES ('" & Form!Nombre & "','" & Form!Apellidos & "','" & Form!Edad & "','" & Form!Telefono & "')"
DoCmd.RunSQL datosSQL
DoCmd.SetWarnings True
End Sub
Si te fijas, he incluido el comando DoCmd.SetWarnings para activar y desactivar los mensajes de aviso. De lo contrario, aparecería un mensaje avisándonos de que se van a insertar registros en la tabla y ralentizaría nuestro trabajo.
A continuación, os dejo dos imágenes en las que se ve el formulario relleno, y el resultado en la tabla una vez pulsamos el botón Enviar.
Si lo que quieres es insertar toda la información, o parte de ella, en varias tablas, solo tienes que escribir tantos inserts como tablas tengas. Así de fácil.
Espero que con este ejemplo hayas aprendido a insertar registros en una tabla usando la sentencia SQL INSERT en VBA.
Además, os dejo dos enlaces donde explico cómo borrar registros usando la sentencia SQL DELETE en VBA y cómo actualizar registros usando la sentencia SQL UPDATE en VBA, por si os interesa.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Un saludo y hasta la próxima.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
4 Comentarios
Enviar un comentario
Últimas publicaciones
Como puedo insertar datos en dos tablas de access desde un formulario.
Ejemplo:
Formulario con campos: id, nombre, apellido, direccion, telefono
Es de aclarar que 1 de las tablas puede poseer el dato y debe dejarlo en blanco y no insertar nada, pero si NO existe el dato debe insertar los datos en dos tablas,
la primera que es la generar y segunda que es un backup
Hola Fernando,
Crea todos los campos como independientes. A continuación, crea un botón y asocia dos inserts (uno a cada tabla distribuyendo los datos según corresponda).
El tema de dejar en blanco si tiene el dato lo puedes comprobar con los campos claves indexados sin repetición, o usando un condicional y el comando DLookUp.
Cualquier cosa me dices.
Saludos.
Hola Rubén!
En este caso, lo normal es montar una tabla con un campo por cada pregunta y otro para el nombre del usuario que lo rellena.
Al final insertamos un registro por cada formulario completado, y se hace de la misma manera que muestro en el ejemplo de esta lección.
Saludos.
Hola, deseo realizar el mismo ejercicio, pero que actualice en cada columna no en las filas... Lo que busco es diligenciar un formulario y que al guardar me guarde todas las preguntas en la columna B, y al insertar con otro botón, me actualice la base en la columna c y después D, etc etc, ¿es posible?.. muchas gracias