2016-02-26 2 views
0

Можно ли опубликовать фрагмент кода о том, как создать ссылку на библиотеку объектов Microsoft DAO 3.6 из Excel 2007?Excel VBA поздно связать библиотеку объектов Microsoft DAO 3.6

Полагаю, что мне нужно использовать метод CreateObject, но я не могу найти что-либо в Интернете относительно правильных параметров для ссылки на DAO 3.6.

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

Большое спасибо

+0

Вы пытались добавить ссылку на vba? Http: //stackoverflow.com/questions/9879825/how-to-add-a-reference-programmatically –

ответ

0

Thes лучшее место, чтобы узнать о DAO является Developer Network от Microsoft. Существует много documentation on the subject.

VBA поддерживает три технологии доступа к данным. DAO, ADO and RDO. Из этих Microsoft рекомендуется использовать ADO, более новый из трех.

Я пытался написать пример с ограниченной границей Excel DAO, но я столкнулся с небольшими проблемами. Мне удалось получить ранний подход.

Sub ExampleEarly() 
    Dim DB As DAO.database 
    Dim RS As DAO.Recordset 


    ' Connect to Excel spreadsheet and read from tab called VA. 
    Set DB = OpenDatabase("C:\Example\ExcelFile.xls", False, True, "Excel 8.0;HDR=Yes") 
    Set RS = DB.OpenRecordset("SELECT * FROM [VA$]") 

'Close the recordset 
    RS.Close  
    DB.Close 
    Set RS = Nothing  
    Set DB = Nothing 
End Sub 

ADO может быть поздно связаны следующим образом:

Dim cn As Object 
Dim rs AS Object 

Set cn = CreateObject("ADODB.Connection") 
Set rs= CreateObject("ADODB.Recordset") 
0

Для DAO позднего связывания. Не полностью протестирована совместимость, если вы используете ADO в своем коде, но он работает до сих пор в моих проектах.

Dim db As Object 'late binding without reference, seems to work, but might cause trouble, not tested 
Dim tbl As Object 

Dim dbe As Object 
Set dbe = CreateObject("DAO.DBEngine.120") 'depends on win version! 


Set db = dbe.OpenDatabase(file) 
Set tbl = db.TableDefs("CAPEX") 
Смежные вопросы