Как получить доступ к SQLite из VBA? - PullRequest
9 голосов
/ 28 августа 2009

У меня есть книга Excel с кодом adodb, который запрашивает базу данных локального доступа. Я хочу сделать то же самое для SQLite, так как считаю, что это обеспечит лучшую производительность. Как я могу это сделать? Могу ли я подключиться к файлу SQLite, используя adodb или odbc?

Мне нужно что-то простое, что я могу развернуть, чтобы, если я смогу свести к минимуму ненужную конфигурацию и установку, возможно, у людей, которые будут использовать Excel, не будет прав администратора на ПК, поэтому они не смогут устанавливать программное обеспечение.

Ответы [ 4 ]

7 голосов
/ 18 января 2010

Столкнувшись с тем же вопросом, я создал облегченную библиотеку, чтобы предоставить прямой доступ к SQLite3 из Excel VBA. Конечный результат - намного более простое решение, без промежуточного уровня ODBC или OleDb / ADO, и производительность отражает производительность базы данных SQLite, а не непрозрачную оболочку. Это также хорошо, потому что вам не нужно регистрировать COM-компонент в реестре, вы просто копируете два .dll с вашей рабочей книгой и добавляете модуль .bas в ваш проект.

Недостатком этого подхода является то, что API не является стандартным интерфейсом DAO или ADO, поэтому вам может понадобиться создать некоторые оболочки или преобразовать часть кода, чтобы он работал. Это также означает, что вам нужно некоторое знакомство с API SQLite, чтобы использовать его, но документация по SQLite очень ясна.

Я поместил раннюю версию проекта в CodePlex: SQLite для Excel обеспечивает высокопроизводительный путь к функциям API SQLite3, сохраняя семантику вызовов библиотеки SQLite3 и разрешить доступ к распределенному SQLite3.dll без перекомпиляции.

Любая обратная связь будет принята с благодарностью.

Обновление: Проект SQLite для Excel теперь работает на GitHub .

3 голосов
/ 02 апреля 2011

Как получить доступ к sqlite из макроса vba из здесь (оригинальная статья на китайском языке) :

Программная среда:

1) Win7 (32 бита) 2) Excel2007 (с функцией VBA)

Шаги:

1) Во-первых, http://www.zsplat.pwp.blueyonder.co.uk/programming/sqlite-3.5.7-odbc-0.65.zip загрузите и установите драйвер SQLite ODBC.

Примечание: если вы используете Win7, то вам нужны права администратора, в противном случае установка не удалась. Самый простой шаг - использовать Войдите в систему администратора, а затем установите драйвер ODBC для SQLite.

2) Откройте окно редактора кода Excel VBA, строку меню [инструмент] -> [ссылка], добавив Microsoft ActiveX Data Objects 2.7, цель использовать VBA и подключение к базе данных.

3) Используйте следующий код для подключения базы данных 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 
2 голосов
/ 31 августа 2009

Я использовал Datenhaus ' dhSQLite , и он хорошо работает.

2 голосов
/ 28 августа 2009

Есть несколько библиотек DLL, которые можно использовать для доступа к базе данных SQLITE из Visual Basic с помощью adodb. Я думаю здесь - это информация, которую вы ищете. Я никогда не пробовал, но ссылка может быть полезной для вас.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...