2016-04-08 19 views
0

私はDAOレコードセットを持っているようなDAOレコードセットから値を動的に取り出す方法は?

Set rst = CurrentDb.OpenRecordset("Select * from EMPLOYEES") 

レコードは次のフィールドがある - NAME、AGE、SALARY、TITLE

は、今私はフィールドの特定のリストを持つ配列を作成している -

 Dim Fields As Variant 
    Fields = Array("NAME", "SALARY") 

配列要素を使用してレコードセットからフィールドを動的に取得したい

 rst.MoveNext 

    MsgBox(rst![Array(0)]) 

「コレクションにアイテムが見つかりません」というエラーが表示されます。

感嘆符( '!')記号の後にフィールド名の変数を渡す適切な方法はここにありますが、わかりません。誰も助けることができますか? - 感嘆符がある後に一部

つまり
rst.Fields("FieldName").Value 

rst![Array(0)]を書き込むことによって、あなたは[Array(0)]という名前の視野を探しています:構文は次のために実際のシンタックスシュガーであることを

+0

'rst.Fields(フィールズ(0))[値]を試してみて、より良いので、IIRCあなたは序数を使用することができます。' rst.Fields(0)。値 ' –

+0

ありがとう!できます! –

答えて

2
rst!FieldName 

文字通り取られる。

だけArrayがあなたの配列変数の名前ではありませんので、あなたはおそらく、それは(思ったよう[Array(0)]Fields(0)に言及されていないことを

rst.Fields(Fields(0)).Value 

注:-)代わりに、低糖の構文を使用しますArray(0)は値0を含む新しい値の配列を作成します)。名前Fieldsが混乱している場合は、これを試してみてください。

Dim fieldList As Variant 
fieldList = Array("NAME", "SALARY") 

... 

MsgBox rst.Fields(fieldList(0)).Value 
+0

ありがとうございました。 –

0
rst.Fields(Fields(0)) or rst.Fields(Array(0)) 
関連する問題