Insertar registros usando la sentencia SQL INSERT en VBA

Escrito por Administrador

10 de noviembre de 2021

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".

solo-letras-vba
solo-letras-vba

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.

solo-letras-vba
solo-letras-vba

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

  1. Avatar

    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

    Responder
    • Avatar

      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.

      Responder
  2. Avatar

    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.

    Responder
  3. Avatar

    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

    Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Últimas publicaciones

Categorías

abril 2024
LMXJVSD
1234567
891011121314
15161718192021
22232425262728
2930 

Debates en el foro

Avatar
Buscar Datos en Columnas
Avatar
Formularios con ADO

Contacto