Mostrando las entradas con la etiqueta access. Mostrar todas las entradas
Mostrando las entradas con la etiqueta access. Mostrar todas las entradas

domingo, 1 de octubre de 2017

Integrando Ms Access y SQL Server - Vincular Tablas

Hola, hoy vamos a ver como integrar Microsoft Access con SQL Server. Para esto, vamos a crear una base de datos en blanco, sin ningún tipo de objeto:


Y en vez de crear una tabla en el propio Access, nos vamos a vincular a una tabla existente, de una base de datos de nuestro servidor de SQL Server. Iniciamos entonces dando clic en la pestaña Datos Externos:


jueves, 4 de mayo de 2017

Trabajando con Transacciones en Microsoft Access - vba

Hoy vamos a trabajar con transacciones en Microsoft Access. Así es, esa pequeña base de datos, que en mi opinión es un gran caballito de guerra, también trabaja con transacciones. 

Vamos a empezar por definir que es una transacción, en la página de Microsoft nos dicen que una transacción es: 

"Una transacción es una secuencia de operaciones realizadas como una sola unidad lógica de trabajo. Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de atomicidad, coherencia, aislamiento y durabilidad (ACID), para ser calificada como transacción."

Lo que quiere decir que una transacción se compone de mas de una operación en una base de datos y que esta tiene validez únicamente si se completan todas o ninguna.

El ejemplo clásico de esto, son las dos operaciones que se realizarían en el aplicativo de un banco al momento de debitar una cuenta por un monto y acreditar otra por dicho valor. 

Dicha operación solo tiene validez si ambas operaciones se ejecutan. ¿Pensemos que pasaría si solo se debita la primera cuenta? Tendríamos una disminución en el saldo de la misma y la cuenta de destino no registraría ningún incremento, es decir: el dinero quedaría en una especie de limbo.

Para evitar esto, las dos operaciones se deben empaquetar en una transacción, así, esta solo tendrá validez si se ejecutan las dos o ninguna.

Pasemos de la teoría al ejemplo. Vamos a trabajar con una sencilla base de datos que solo tiene una tabla con la siguiente información:


Nuestra misión es debitar (disminuir) la cuenta de Eduardo en $100 y acreditar (incrementar) la cuenta de Diana en ese mismo valor utilizando una transacción.

domingo, 23 de abril de 2017

Post Mejorado: Ejecutar la instrucción DELETE de SQL desde excel usando solo el objeto ADODB.connection de vba

En el post Ejecutar la instrucción DELETE de SQL desde Excel usando VBA vimos como realizar operaciones con bases de datos desde excel. Para esto, utilizamos una conexión y después mediante el uso de un objeto comando, enviamos la instrucción a la base de datos. Hoy vamos a mejorar este código, utilizando solamente la conexión y no vamos a hacer uso del comando. Ya quedará al gusto de cada uno de ustedes, seguir escribiendo sus propios programas como más les guste.

Entonces, vamos a recordar el código inicial:


Como pueden ver, las lineas finales, donde se inicia la instrucción with, es donde esta nuestro comando. Vamos entonces a eliminarlas y reemplazarlas de la siguiente manera:


De esta forma, ya no necesitamos declarar el objeto command ni el código asociado al mismo.

miércoles, 12 de abril de 2017

Ejecutar la utilidad compactar y reparar de Microsoft Access

Nuestros archivos de bases de datos de Microsoft Access suelen ir creciendo con el tiempo. En la medida en que realizamos transacciones con los mismos e insertamos nuevos registros, nuestra base de datos se incrementa en algunos o en muchos bytes.

Muy pocas personas suelen realizar una tarea de mantenimiento que al menos deberíamos ejecutar una o dos veces en el mes, dependiendo del volumen de transacciones que realicemos en nuestra base. Esta tarea de mantenimiento realiza una reparación de nuestro archivo de access y ejecuta un proceso mediante el cual se compacta la base de datos, disminuyendo el tamaño de la misma y  mejorando el performance del archivo.

Vamos hoy entonces a ejecutar este sencillo comando, que nos va a ayudar a mantener unas bases de datos sanas y de menor tamaño. Este proceso se lo vamos a aplicar a una base de datos que tengo en mi disco duro, y que se llama: Gastos Gestionables SAL.accdb que pueden ver a continuación:


Como pueden ver, en este momento el tamaño del archivo es de 5.160 KB. Vamos entonces a abrir el archivo y en el menú: HERRAMIENTAS DE BASES DE DATOS buscamos la opción:Compactar y reparar base de datos y damos clic en ella:

Ejecutar la instrucción INSERT INTO de SQL desde Excel usando VBA

Continuando con los posts en los que estamos trabajando como ejecutar instrucciones de SQL desde nuestro excel, hoy vamos a trabajar con la instrucción INSERT INTO. Ya previamente vimos la instrucción UPDATE y la instrucción DELETE donde en ambos casos utilizamos la librería ADO.

Para ejecutar INSERT INTO, necesitamos lo mismo, es decir, una conexión y un comando. Así de simple.

Nuevamente nos vamos al editor de visual basic, y vamos a ingresar el código para la conexión. Recuerden que como lo vimos previamente, hay que activar la librería ADO:


En este caso, la ruta del archivo de access, la tenemos en una hoja llamada Configuración, en la celda B3.

Procedemos a crear un comando DELETE, para limpiar la tabla en la que vamos a cargar nuestros datos:


sábado, 8 de abril de 2017

Ejecutar un procedimiento almacenado en SQL Server desde Ms Access

Hoy vamos a revisar como ejecutar un procedimiento que este construido en T-SQL y que se encuentre almacenado en una base de datos de un servidor de SQL Server. La verdad es que la sentencia para ejecutarlo es mínima y como vamos a usar las consultas de paso a través, esa poderosa herramienta que trae Microsoft Access, solo vamos a necesitar una línea de código y un conector ODBC.

Entonces, lo primero que vamos a hacer en nuestro archivo de access, es crear una nueva consulta:


Cerramos el cuadro de diálogo que se despliega por defecto:

martes, 4 de abril de 2017

Activar la cadena de conexión ODBC en consultas SQL de paso a través en Ms Access

Una poderosa herramienta que trae incorporada Access son las llamadas consultas de paso a través. Así es, esa pequeña base de datos esta llena de sorpresas, incluso es capaz de trabajar con transacciones y puede hacer efectivamente commit o roll back.

Dichas consultas, nos sirven para conectarnos a bases de datos externas como Oracle, SQL Server, My SQL, Postgress y otras, permitiéndonos ejecutar código SQL nativo del motor del servidor al que nos conectemos. Eso que quiere decir? simple, que desde access, podríamos escribir una consulta codificada en T-SQL (en el caso de SQL Server) o en PL/SQL (En el caso de Oracle), ejecutarla y enviarla a correr en el servidor. Cuando construimos la consulta, lo que nos sucede es que en cada oportunidad que la ejecutamos, Access nos va a pedir que indiquemos cuál es el archivo ODBC que permite hacer la conexión con el servidor. En este post, vamos a ver qué debemos hacer para evitar ese paso y que nuestra consulta se ejecute siempre que le demos doble clic.

Vamos a trabajar con una base que ya tiene creada la siguiente consulta de paso a través:


La vamos a ejecutar:

domingo, 2 de abril de 2017

Ejecutar la instrucción UPDATE de SQL desde Excel usando VBA

En este segundo post, vamos a ejecutar la instrucción UPDATE que básicamente es para actualizar registros en una base de datos. Sencilla pero poderosa y de mucho cuidado, pues después de ejecutada no la podremos deshacer. Nuevamente, vamos a construir una macro que va a combinar vba y sql.

Vamos a iniciar abriendo un archivo de excel, y vamos a dar la combinación de teclas Alt + F11 para abrir el editor de visual basic. Nos  deberá aparecer la siguiente ventana:


Seleccionamos la opción para insertar un módulo:


viernes, 31 de marzo de 2017

Ejecutar la instrucción DELETE de SQL desde Excel usando VBA

Vamos a iniciar una serie de posts en los que vamos a utilizar las instrucciones básicas de SQL para borrar, actualizar e insertar datos desde excel en una tabla de una base de datos. Para nuestros ejemplos, vamos a utilizar una base de datos construida en Ms Access, pero podemos reutilizar el código para hacer las operaciones con una base de datos de Oracle, SQL Server, My SQL y otras más.

Este primer post, es sobre el uso de la instrucción DELETE. Sencilla pero poderosa y de mucho cuidado, pues después de ejecutada no la podremos deshacer. En este ejemplo, vamos a construir una macro que va a combinar vba y sql. En mi opinión una combinación poderosa que nos va a servir para solucionar muchas de las necesidades que tengamos en nuestro trabajo.

Vamos a iniciar abriendo un archivo de excel, y vamos a dar la combinación de teclas Alt + F11 para abrir el editor de visual basic. Nos  deberá aparecer la siguiente ventana:



Seleccionamos la opción para insertar un módulo: