2015-09-11 2 views
1

Я пытаюсь ссылаться на открытый файл доступа из Excel VBA. У меня просто возникают проблемы с настройкой.Ссылка открыта База данных доступа

Dim Ac As Access.Application 
Set Ac = ??? 

Ac.DoCmd.OpenForm "Blah" 

Что я поставил вместо ??? для ссылки на открытую базу данных?

+0

Вы можете быть в состоянии использовать GetObject '()' - посмотрите в эту –

+0

'Dim AC Как Object' 'Set AC = GetObject (" .accdb "," Access.Application ")' 'AC.DoCmd.OpenForm" "' открывает новое окно Access, но оно открывает форму ... (Все между большим/меньшим, чем знаками, на самом деле не то, что я использую в коде. – icebird76

ответ

2

Использовать GetObject(pathname, class) как Tim suggested.

Set Ac = GetObject(, "Access.Application") ' no value for pathname argument 
Ac.DoCmd.OpenForm "Blah" 

Если у вас есть более чем один сеанс открытого доступа, используйте полный путь к файлу БД, который вы хотите сослаться ...

Set Ac = GetObject("C:\share\Access\Database2.accdb") ' give it pathname 

Вы можете использовать позднее связывание вместо Dim Ac As Access.Application и не нужно устанавливать ссылку на библиотеку типа доступа. С позднего связывания можно объявить переменную, как это, и GetObject будет по-прежнему сотрудничать ...

Dim Ac As Object 
+0

Это работает! Большое спасибо! Я попытался использовать путь, но открыл другое окно Access, которое не то, что я хотел. работал! – icebird76

+0

Я видел ваш ответ на @Tim и ввел Дальше. 'GetObject (" C: \ share \ Access \ Database2.accdb "," Access.Application ")' дал мне новый сеанс доступа. Но предоставление 'GetObject' только одного из этих двух аргументов не создало новый сеанс. – HansUp

+0

Когда у меня не было второго аргумента и у меня был только путь к файлу, он дал ошибку, поскольку он не являлся допустимой базой данных или чем-то еще, но у меня не было .accdb, заканчивающегося в пути к файлу, чтобы, вероятно, было что-то сделать с этим. – icebird76

Смежные вопросы