2009-08-28 25 views
9

Ich habe eine Excel-Arbeitsmappe mit Adodb-Code, der eine lokale Zugriffsdatenbank abfragt. Ich möchte das gleiche für SQLite tun, da ich glaube, dass dies eine bessere Leistung bringt. Wie mache ich das? Kann ich mit adodb oder odbc eine Verbindung zu einer SQLite-Datei herstellen?Wie kann ich über VBA auf SQLite zugreifen?

Ich brauche etwas Einfaches, das ich bereitstellen kann, so dass, wenn ich unnötige Konfiguration und Installation minimieren kann, Leute, die das Excel verwenden, keine Administratorrechte auf dem PC haben werden, so dass sie keine Software installieren können.

Antwort

2

Es gibt einige DLLs, die Sie verwenden können, um mit Adodb von Visual Basic aus auf eine SQLITE-Datenbank zuzugreifen. Ich denke, here ist die Information, die Sie suchen. Ich habe es nie ausprobiert, aber der Link kann für Sie nützlich sein.

Viel Glück.

2

Ich habe Datenhaus 'dhSQLite verwendet und es funktioniert gut.

6

Mit der gleichen Frage konfrontiert, machte ich eine leichte Bibliothek, um direkten Zugriff auf SQLite3 von Excel VBA. Das Endergebnis ist eine viel einfachere Lösung ohne zwischengeschaltete ODBC- oder OleDb/ADO-Schicht, und die Leistung spiegelt die SQLite-Datenbankleistung und nicht die des undurchsichtigen Wrappers wider. Es ist auch schön, weil Sie keine Registrierung einer COM-Komponente in der Registrierung benötigen, Sie kopieren einfach zwei .dlls mit Ihrer Arbeitsmappe und fügen ein .bas-Modul in Ihr Projekt ein.

Ein Nachteil dieses Ansatzes ist, dass die API nicht die Standard-DAO- oder ADO-Schnittstelle ist. Daher müssen Sie möglicherweise einige Wrapper erstellen oder einen Teil Ihres Codes konvertieren, damit er funktioniert. Das bedeutet auch, dass Sie mit der SQLite-API vertraut sein müssen, um sie zu verwenden, aber die SQLite-Dokumentation ist sehr klar.

Ich habe eine frühe Version des Projekts auf CodePlex gestellt: SQLite for Excel bietet einen High-Performance-Pfad zu den SQLite3-API-Funktionen unter Beibehaltung der Semantik der SQLite3-Bibliothek Aufrufe und den Zugriff auf die verteilte SQLite3.dll ohne Neukompilierung.

Jede Rückmeldung würde sehr geschätzt werden.

Aktualisierung: Das SQLite for Excel Projekt lebt jetzt auf GitHub.

2

Wie für den Zugriff auf SQLite von VBA-Makro aus here (original article in chinese):

Umwelt Software:

1) Win7 (32 Bit) 2) Excel2007 (mit VBA-Funktion)

Schritte:

1) Zuerst, http://www.zsplat.pwp.blueyonder.co.uk/programming/sqlite-3.5.7-odbc-0.65.zip herunterladen und installieren Sie den SQLite ODBC-Treiber.

Hinweis: Wenn Sie Win7 verwenden, benötigen Sie Administratorrechte, andernfalls schlägt die Installation fehl. Der einfachste Schritt besteht darin, die Administratoranmeldung zu verwenden und anschließend den SQLite-ODBC-Treiber zu installieren.

2), um die Excel-VBA-Code-Editor-Fenster öffnen, wird die Menüleiste [Werkzeug] -> [Referenz], Hinzufügen von Microsoft ActiveX Data Objects 2.7 ist der Zweck VBA zu verwenden, und Datenbank-Konnektivität.

3) Verwenden Sie den folgenden Code SQLite-Datenbank zu verbinden:

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 
Verwandte Themen