2016-02-24 2 views
0

Я пытаюсь настроить общий процесс в Excel VBA для обработки соединений и чтения баз данных.excel vba variable ссылки другая переменная

Вместо ввода имен переменных жесткого кода в модуль я хотел бы обратиться к имени переданной переменной, которое затем обновляется в модуле. Это позволило бы мне использовать это в любом количестве приложений без необходимости жестких имен переменных кода.

Пример Приложение имеет переменную:

Dim cnDB1 As ADODB.Connection 
Dim cnDB2 as ADODB.Connection 

Я хотел бы передать «имя» переменной в качестве параметра и есть родовое обновления модуля значение.

Open_Database "cnDB1", strCnnnectionDetails1 
Open_Database "cnDB2", strConnectionDetails2 

Я делал это в VBS через Eval и Execute команды, но я не могу определить, как выполнить аналогичные действия в Excel VBA.

+1

В VBA нет точного эквивалента. Если вы используете класс с переменными public member или соответствующими им свойствами, вы можете использовать 'CallByName' для этого. Признаюсь, я боюсь видеть выгоду. – Rory

ответ

0

Я как-то ответил на это, просто определяя глобальное соединение ADODB, на которое я ссылаюсь в своем модуле. После того, как вызов будет выполнен, я передам глобальное значение в мое конкретное приложение.

Грязный обходной способ, но он работает.

+0

Это был мой подход - написал класс для приложения для записи параметров в общее место и класс для VBA для чтения параметров из этого местоположения. Я использую имя файла MS doc как ключ поиска для общего местоположения. Не будет хорошо масштабироваться, но работает в небольшом магазине. – rheitzman

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