0

VBAとDAO.Recordsetでの作業中に、奇妙な問題が発生しました。私は現在、レコードセットをループしていて、対応するフィールドをearch反復用に配列に保存しています。しかし、whileループのために「.MoveNext」を呼び出すたびに、「rs.Fields.Field(i).Value」に格納されている情報が上書きされるため、フィールドは使用できなくなります。私はデバッグ中にこれを理解しました。

いくつかの関連コード:

rsでない場合は何もありません
      rs.RecordCount>0の場合Then
        rs付き
            .EOFではありませんが
                ReDim Preserve fieldSet(0 To i + 1)As DAO.Fields
                fieldSet(i)=rs.Fieldsを設定します
                i = i + 1'この時点では、値はそのままです。
                .MoveNext'ここでは、値フィールド内に「現在のレコードはありません」のみが保存されます
            ウェンド
        で終わる
      終了する場合

うまくいけば、誰かがこれを引き起こす原因についての考えを持っています。前もって感謝します。

4

1 に答える 1

1

各レコードのフィールド/列数に対して別のループを実行してみてください。

Do While Not rs.EOF
   For j = 0 to rs.Fields.Count
     Set fieldSet(j) = rs.Fields.Field(j).Value 
     '-- do stuff
   Next j
   rs.MoveNext
Loop
于 2013-01-22T14:26:44.737 に答える