2009-08-28 56 views
9

Tengo un libro de Excel que tiene algún código adodb que consulta una base de datos de acceso local. Quiero hacer lo mismo para SQLite porque creo que proporcionará un mejor rendimiento. ¿Cómo puedo hacer eso? ¿Puedo conectarme a un archivo SQLite usando adodb u odbc?¿Cómo accedo a SQLite desde VBA?

Necesito algo sencillo que pueda implementar para que, si puedo minimizar la configuración e instalación innecesaria, tal vez las personas que utilizarán Excel no tengan derechos de administrador en la PC para que no puedan instalar el software.

Respuesta

2

Hay algunos archivos DLL que puede usar para acceder a una base de datos SQLITE desde Visual Basic utilizando adodb. Creo que here es la información que estás buscando. Nunca lo intenté, pero el enlace puede ser útil para ti.

Buena suerte.

2

He usado Datenhaus 'dhSQLite y funciona bien.

6

Enfrentando la misma pregunta, hice una biblioteca liviana para dar acceso directo a SQLite3 desde Excel VBA. El resultado final es una solución mucho más simple, sin capas intermedias de ODBC o OleDb/ADO, y el rendimiento refleja el rendimiento de la base de datos SQLite y no el del contenedor opaco. También es bueno porque no necesita el registro de un componente COM en el registro, solo copia dos .dlls con su libro de trabajo y agrega un módulo .bas en su proyecto.

Una desventaja de este enfoque es que la API no es la interfaz DAO o ADO estándar, por lo que es posible que deba crear algunos contenedores o convertir parte de su código para que funcione. Eso también significa que necesita cierta familiaridad con la API de SQLite para usarla, pero la documentación de SQLite es muy clara.

He puesto una primera versión del proyecto en CodePlex: SQLite for Excel proporciona una trayectoria de alto rendimiento para las funciones de la API SQLite3, preservar la semántica de las llamadas de biblioteca SQLite3 y permitiendo el acceso a la sqlite3.dll distribuido sin recompilación.

Cualquier comentario sería muy apreciado.

Actualización: El proyecto SQLite for Excel ahora vive en GitHub.

2

Cómo acceder a SQLite de macro VBA de here (original article in chinese): medio ambiente

software:

1) Win7 (32 bits) 2) Excel2007 (con función de VBA)

pasos:

1) Primero, http://www.zsplat.pwp.blueyonder.co.uk/programming/sqlite-3.5.7-odbc-0.65.zip descargue e instale el controlador SQLite ODBC.

Nota: Si usa Win7, necesita permisos de administrador, , de lo contrario, la instalación falla. El paso más simple es usar el inicio de sesión del administrador y luego instalar el controlador ODBC de SQLite.

2) Abrir la ventana de editor de código VBA de Excel, la barra de menú [Herramientas] -> [referencia], la adición de Microsoft ActiveX Data Objects 2.7, el propósito es utilizar VBA, y la conectividad de base de datos.

3) Utilice el código siguiente para conectar la base de datos SQLite:

Dim conn As New ADODB.Connection 
Dim dbName As String 

'Define the connection string 

dbName = "Driver = {SQLite3 ODBC Driver}; Database = D: \ yourdbname.db" 

'Open the database 

ff.Open dbName 

ff.Execute "create table a (a, b, c);" 

'Other operations on and VBA to connect to other DB like Access the same. 


'Close connection 
ff.Close 
Cuestiones relacionadas