質問者
Access VBA データシートビュー(フォーム)での表示

質問
-
AccessのVBAでAzureに登録されたストアドプロシジャーの結果をデータシートビューで表示しようとしています。ストアドプロシジャー自体が動的に生成されるものなので、OpenRecordsetで得られた結果をそのまま、フォームのレコードソースにすることはできません。そこで、Loopを使用してレコードセットの結果をフォームの項目にForms![フォーム名]!テキスト項目名.Value = .Fields(0).Valueといった形で代入していますが、データシートの行の加算(?)方法がわからず、全ての結果が1行目に更新表示され、最終行が1行目に表示されてしまっています。Loop内で、データーシートビューのRow等を加算すれば対処できるのではと思っているのですが、如何でしょうか?
すべての返信
-
フォームの「レコードソース」ではなく「set Me.Recordset = ○○」のように「レコードセット」に指定しては如何でしょうか?
フォームのレコードセットにストアドのレコードセットをセットしてみました。データーシートの表の件数はストアドの結果と同じになりましたが、個別の行には表示がされません。
Forms![フォーム名]!項目名.Value = .Fields(0).Value
と言う形で歳入すると全ての行がストアドの結果の1行目の内容が表示されました。
Do while rs.EOF
Forms![フォーム名]!項目名.Value = .Fields(0).Value
rs.movenext
Loop
とすると、なぜかEOFが検知できないので永久ループになってしまいました。