2012-02-09 20 views
2

参照変数の名前として変数値を使用することはできますか?例えば、参照変数値として - VB6

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

人名であるPersonNameの値の代わりに。 JoeBloggs;参照変数自体はJoeBloggs、つまりjoebloggs = whateverとなります。

私はそれがよくある質問だと思ったので答えを見回しました。私はそれを見つけることができませんでした。

+0

なぜこれが一般的なのですか?これは、実行時まで値が分からない変数の全体点を破ります。 –

+0

質問をもっと明確にすることはできますか?おそらく、各ステップで各アイテムの価値を指摘した例があります。 –

+1

辞書が必要です。 – SLaks

答えて

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のコレクションに保存されている何も覚えてはいつも、バリアントとして保存されますStringよりもメモリが必要です。しかし、それでも文字列や数字など、必要なものとして使用することはできます。

クール?

あなたのニーズが実際に異なっていて、私があなたの質問に誤解しているかどうか教えてください。ありがとう。