2012-02-09 70 views
2

是否可以使用變量值作爲參考變量的名稱?例如:參考變量作爲值 - VB6

Dim PersonName As String 
PersonName = recordset("PersonName") 

而不是PersonName作爲人名的值,例如, JoeBloggs;引用變量本身就是JoeBloggs,即joebloggs = whatever。

我環顧四周尋找答案,因爲我認爲這將是一個常見問題;但我無法找到一個。

+0

爲什麼這會很常見?這就破壞了變量的全部意義 - 在運行時間之前你不知道它的價值! – 2012-02-09 20:20:32

+0

你能再澄清一下你的問題嗎?也許用一個例子來指出每一步每個項目的價值。 – 2012-02-09 21:40:34

+1

你想要一本字典。 – SLaks 2012-02-09 21:56:33

回答

1

@ w0051977別擔心,你的需要(如果我理解正確)確實有道理,我也希望這樣做。如果你理解它,你希望能夠使用字符串定義變量名稱?就像,如果你的數據庫中有一個「JohnDoe」,那麼你想將你的變量的名字設置爲一個名爲JohnDoe的字符串,對嗎?如果這是正確的,你不能直接在VB6中做到這一點,但是,在VB.NET我們有反射,所以有一些方法可以讀取變量的名稱,並將它作爲字符串返回(儘管我明白你想要做相反的事情)。所以,在VB6要做到這一點最好的辦法是以下...

Dim c As Collection ' where c is our collection to make it short-hand/less typing. 
Set c = New Collection ' you could have done As New Collection instead but this is better, trust me. 

c.Add "MyValue1", "JohnDoe" ' sets a variable named JohnDoe with value "MyValue1" 
c.Add "MyValue2", "JessKay" ' remember, these are stored as Variants, but can use as string. 

我們叫它...

MsgBox c("JohnDoe") ' this simple. 

所以C(「JOHNDOE」)將返回無論是在價值你已經設置了這個變量名稱。

的小雞同樣的故事,說你想設置在它與女孩值另一個變量...

Dim abc As String 
abc = c("JessKay") ' thats all :) abc will equal "MyValue2" 

此外,請記住存儲在VB6集合將始終被存儲爲變任何東西,所以需要比字符串更多的內存。但是,您仍然可以將其用作字符串或數字或其他任何您想要的內容。

很酷嗎?

讓我知道你的需求是否真的不同,我誤解了你的問題。謝謝。