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.
Por último y para ser más rigurosos con nuestro código, vamos a cerrar la conexión y a eliminar la referencia al objeto:
Nuestra tabla en access luce de la siguiente forma:
Y al ejecutar nuestra macro queda así (Recuerden, paso a paso con F8 y F5 para ejecutar en un solo paso):
La tabla de nuestra base de datos ha quedado limpia, que era el objetivo de la macro. Este método abreviado lo pueden utilizar en cualquier macro y sirve para mejorar otros ejemplos que ya habíamos visto con anterioridad en este mismo blog.
Aquí les dejo el código:
Código
Espero les sirva. Hasta una próxima.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub borrar_datos() | |
Dim cnn As New ADODB.Connection | |
cnn.Provider = "Microsoft.ACE.OLEDB.12.0" 'Este es el proveedor para conectarnos a Access | |
'En caso de que nos quisieramos conectar a SQL Server, debemos utilizar el proveedor adecuado | |
'En la siguiente instrucción le indicamos al programa la ruta donde esta | |
'la base de datos y el nombre de la misma | |
cnn.Properties("Data Source") = "C:\Users\edualzja\Documents\Gastos Gestionables MEX.accdb" | |
'Dejamos el password en blanco, asi funciona por defecto en access | |
'en otras bases deberemos especificar el usuario y la contraseña | |
cnn.Properties("Jet OLEDB:Database Password") = "" | |
'Por último abrimos la conexión | |
cnn.Open | |
'Y Ejecutamos la instruccion SQL | |
cnn.Execute "DELETE * FROM tblReales" | |
cnn.Close | |
Set cnn = Nothing | |
End Sub |
Espero les sirva. Hasta una próxima.
No hay comentarios.:
Publicar un comentario