お世話になります。
Access2010を使用しています。
フォームモジュールにて、下記のようなコードを実行すると、
エラー 91 「オブジェクト変数または With ブロック変数が設定されていません。」
というエラーになります。
宣言セクションのPrivateステートメントをDimステートメントに変更すればうまくいったのですが、
この理由が理解できません。
エラーの内容からして、
Privateで宣言したrs2がTest()内では参照できないのだと思いますが、
Dimはプロシージャ内で使用する変数、
Privateはモジュール全体で使用する変数の宣言に利用するという理解をしておりましたので、
どうにも腑に落ちないのです。
フォームモジュールにおけるDimとPrivateの違いを
ご教授いただけませんでしょうか。
以下、参考のコードです。
Dim mydb1 As DAO.Database
Dim rs1 As DAO.Recordset
Private mydb2 As DAO.Database
Private rs2 As DAO.Recordset
Private Sub Form_Load()
Set mydb1 = CurrentDb
Set mydb2 = CurrentDb
Set rs1 = mydb1.OpenRecordset("データソース1") Set rs2 = mydb2.OpenRecordset("データソース2") Call Test
End Sub
Private Sub Test()
rs1.AddNew
'(処理記述)
rs1.Update
rs2.AddNew 'ここでエラー '(処理記述) rs2.Update
End Sub
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー