Hoy les traigo una macro que como lo dice el titulo nos
permitirá insertar registros en sql server.
Tengo una base de datos a la cual llame escuela
en la que una de sus tablas contiene la información de los estudiantes: código,
nombre, primer apellido, segundo apellido, sexo , edad
En este momento la tabla estudiantes esta vacía:
Nos daremos a la tarea de crear una macro en vba Excel
que nos permite insertar registros en esta tabla.
Pero para poder agregar registros a la tabla obviamente
primero debemos conectarnos a sql server con dicho fin escribimos la siguiente
rutina:
En una entrada anterior de este mismo blog te explico el
funcionamiento de esta rutina la cual queremos que se ejecute cada vez que
abran el libro de Excel, para que sea así he creado una rutina más:
La rutina iniciar invoca a la de conexión pasándole como
parámetro el nombre del servidor y de la base de datos, esta información se
encuentra dentro de la misma hoja de calculo:
En nuestro IDE de VBA hacemos clic en la sección ThisWorkBook
Y agregamos el siguiente código:
De ahora en adelante cada vez que abramos este libro se
ejecutara la macro de forma automática.
Ahora que ya podemos conectarnos a sql server, creamos un
formulario para pedir al usuario de nuestra macro la información de los
estudiantes que se desea agregar a la base de datos
Como puedes ver este formulario cuenta con un campo para
la edad, llenaremos este campo con los números entre 1 y 100, para esto usamos
la siguiente rutina:
Para que la rutina anterior se ejecute cada vez que se
active el formulario la invocamos desde el método Activate del formulario.
Cada vez que nuestro usuario haga clic en el botón guardar
la macro validara que toda la información esta diligenciada, para eso usamos el
siguiente código:
Como ya indicamos esta rutina será invocada desde el botón
Guardar con el siguiente código:
La rutina validar_formulario es invocada pasándole como parámetro
el formulario y el número 0, esta rutina validara cada campo del formulario y
si encuentra alguno vació le asignara un uno al parámetro recibido como código de
error, además mostrara un mensaje en pantalla.
Para ejemplificarlo ejecutamos la macro:
Si hacemos clic en el botón Guardar se genera el
siguiente mensaje:
Cuando todas las validaciones son superadas se invoca la
rutina que inserta los registros en la tabla de base de datos, la invocamos de
la siguiente forma:
Tendremos que utilizar funciones de conversión en VBA
para pasar los parámetros de acuerdo al tipo de datos que recibe la rutina
insertar registros, usamos la función Clng para convertir el código del
estudiante de tipo texto a un entero largo, usamos la función Cint para
convertir la edad del estudiante de tipo texto a entero.
Veamos la rutina que inserta los registros en la base de
datos:
Esta rutina ejecuta una sencilla instrucción insert sobre nuestra base de datos.
Ahora agregaremos un registro a la base de datos usando
nuestra macro.
Finalmente hacemos clic en el botón Guardar.
Podemos ver que el registro quedo almacenado en la base
de datos:
Espero que esta información te sea útil, si
quieres automatizar tus procesos con VBA escríbenos a macrosymacros@gmail.com. En nuestro
ebook encontraras una colección de macros completas ya terminadas encuéntralo aquí.
Puedes descargar el documento excel con la macro siguiendo este enlace.
Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.
Puedes descargar el documento excel con la macro siguiendo este enlace.
Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.
Para aprender mas sobre VBA sigue nuestro curso online.
El curso consta de 7 horas y 28 lecciones en vídeo. Aprenderás a ahorrar tiempo en excel , al automatizar tu trabajo mediante macros evitando perdida de tiempo en tareas repetitivas. Aprenderás desde cero a programar en VBA.
El curso consta de 7 horas y 28 lecciones en vídeo. Aprenderás a ahorrar tiempo en excel , al automatizar tu trabajo mediante macros evitando perdida de tiempo en tareas repetitivas. Aprenderás desde cero a programar en VBA.
Excelente artículo. Me sirvió demasiado para un programa que estoy haciendo para asistencia a eventos. Seguí todas las instrucciones y lo logré. Mil gracias. Lo único que faltó mencionar en el artículo es que para que todo ésto funcione se debe habilitar el "Microsoft ActiveX Data Objects 2.x library"
ResponderEliminarEse formulario en que programa lo hiciste?
ResponderEliminarLa variable adCmdText en donde se asigna su valor??
ResponderEliminar