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

mayo 2024
LMXJVSD
 12345
6789101112
13141516171819
20212223242526
2728293031 

Debates en el foro

Avatar
guardar imagenes en carpeta
Avatar
Necesito ayuda con un formulario
Avatar
Buscar Datos en Columnas

Contacto