Как подключиться к базе данных Access с помощью VBScript - PullRequest
2 голосов
/ 25 октября 2019

У меня есть база данных Access для клиента, который хочет подключиться к базе данных и запросить ее, используя vbscript (поэтому они могут автоматизировать работу, фактически не открывая Access 2000 MDB). Я не могу понять, как установить соединение с базой данных.

Я пробовал несколько сценариев, используя как DAO, так и OLEDB. Ниже я вставил самое близкое, что у меня есть, используя DSN File ODBC (боюсь, что использование System DSN потребует дополнительной работы на стороне клиента, я пытаюсь сделать его простым).

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

'ERROR OCCURS HERE
objConnection.Open "FileDSN=D:\RLS.dsn;" 

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT County FROM CountyTBL" , objConnection, adOpenStatic, adLockOptimistic

Вот содержимое файла RLS.dsn (я создал его с помощью панели управления Windows, поэтому я уверен, что он правильный):

[ODBC]
DRIVER=Microsoft Access Driver (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=D:\
DBQ=D:\RLS_be.mdb

Сообщение об ошибке, которое я получил (и это было похоже на другие2 сценария, которые я также пробовал) был:

"Строка 5, ошибка Char 4: [Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию. Источник: Microsoft OLE DB Provider для ODBCВодители "

1 Ответ

2 голосов
/ 25 октября 2019

Вы можете просто использовать ADO для подключения к файлу без настройки DSN. Это будет проще для вашего клиента.

Для Access 2000, 2002-2003 MDB , используйте следующую строку подключения:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\RLS_be.mdb"

Для Access 2007, 2010, 2013 ACCDB :

"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\RLS_be.accdb"

Общий код подключения:

' Build connection string
Dim sConnectionString
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\RLS_be.mdb"

' Create connection object
Dim objConnection
Set objConnection = CreateObject("ADODB.Connection")

' Open Connection
objConnection.open sConnectionString

' Get recordset from SQL query
Dim objRecordset
Dim sQuery
sQuery = "SELECT County FROM CountyTBL"

Set objRecordset = CreateObject("ADODB.Recordset")
objRecordset.CursorLocation = adUseClient
objRecordset.Open sQuery, objConnection, adOpenStatic, adLockOptimistic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...