2016-02-24 73 views
0

我想在Excel VBA中設置一個通用進程來處理連接和讀取數據庫。excel vba變量引用另一個變量

而不是硬編碼變量名稱到模塊中我想引用傳遞的變量名稱,然後在模塊中更新。這將允許我在任何數量的應用程序中使用它,而不必硬編碼變量名稱。

例 一個應用程序具有一個變量:

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

我想傳遞變量「名稱」作爲參數,並具有通用模塊更新該值。

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

我在VBS通過評估和演示做到了這一點,並執行命令,但我不能確定如何執行在Excel VBA中類似的操作。

+1

在VBA中沒有確切的等價物。如果您使用具有公共成員變量的類或適當命名的屬性,則可以使用'CallByName'來執行此操作。我承認儘管我很努力地看到好處。 – Rory

回答

0

我只是定義了一個全局ADODB連接,我在模塊中引用了這個連接。通話完成後,我將全局值轉移到特定於應用程序的連接。

骯髒的解決方法,但它的工作原理。

+0

這也是我的方法 - 爲應用程序編寫類以將參數寫入公共位置,以及VBA從該位置讀取參數的類。我使用MS doc文件名作爲公共位置的查找鍵。不能很好地擴展,但在一家小商店工作。 – rheitzman