
いつもお世話になってます。
フォームAにサブフォームを2つ(サブ1とサブ2)を配置しています。
サブ2の紹介者コードが更新されたら、サブ1の会員コードを参照して、テーブル”紹介”に以下のデータを追加するようにVBAを書いています。サブ1は家族データで世帯コードで世帯主を判断、サブ2は紹介者データ。
サブ2の紹介者コード:
Private Sub 紹介者コード_AfterUpdate()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("紹介")
With forms!フォームA!サブ1.Form.RecordsetClone
.MoveFirst
Do Until .EOF
With rs
If !世帯コード <> 1 Then '世帯主はすでに登録済み
.AddNew
.Fields("会員コード").Value = !会員コード
.Fields("紹介者コード").Value = Me.紹介者コード
.Update
End If
End With
.MoveNext
Loop
End With
rs.Clone
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
これを実行すると、サブ1のrecordsetcloneのメンバー(!世帯コードと!会員コード)が
実行時エラー’3265’ このコレクションには項目がありませんとエラーになる。
別なフォームで親側からサブフォームを参照するのには問題ありません。
サブフォームから別なサブフォームの内容を参照するには、何か工夫がいるのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
この
With rs
~
End With
の中の、!世帯コード、!会員コード、などの
「親」(と言ってよいのかわからないが)は
すべて、rs、つまり"紹介"を指定していることになります。
Private Sub 紹介者コード_AfterUpdate()
Dim db As DAO.Database
Dim rs As DAO.Recordset,rs2 as dao.recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("紹介")
set rs2=forms!フォームA!サブ1.Form.RecordsetClone
rs2.MoveFirst
Do Until rs2.EOF
With rs
If rs2!世帯コード <> 1 Then '世帯主はすでに登録済み
.AddNew
.Fields("会員コード").Value = rs2!会員コード
.Fields("紹介者コード").Value = Me.紹介者コード
.Update
End If
End With
.MoveNext
Loop
後略
では?
回答ありがとうございます。
set recordsetとwithとの関係がよく理解できていませんね。
ご指摘の内容で動作出来ました。(.MoveNextは、rs2.MoveNextに修正して)
早々の解決で、助かります。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
-
4
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
5
Accessで、一覧からクリックして詳細表示したい
その他(Microsoft Office)
-
6
Access 2010で実行時エラー3061
その他(Microsoft Office)
-
7
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
microsoft office for mac につ...
-
Microsoft Officeを2台目のPCに...
-
office2019 のoutlookは2025年1...
-
エクセルの式がわかる方がおら...
-
大学のレポート A4で1枚レポー...
-
Microsoft Formsの「個人情報や...
-
outlookのメールが固まってしま...
-
Excelで〇のついたものを抽出し...
-
Excel 日付を比較したら、同じ...
-
Office2021を別のPCにインスト...
-
Microsoft 365 の支払いが反映...
-
ステータスバーの合計に表示さ...
-
VBAの印刷について
-
エクセル:一定間隔で平均値を...
-
会社のOutlookにてメールを予約...
-
Office 2021 Professional Plus...
-
Windows 11で、IME言語バー(IM...
-
web上にあるエクセルをショート...
-
Office2024インストール後の疑問点
-
マイクロソフト オフィスのサポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
36設定
-
複数のUSBゲームパッドのPC側の...
-
サブPCの必要性について
-
地上デジタルTVのOFDM方...
-
エミネム モッキンバードのP...
-
「エリア88」サキと7人の仲間
-
これなんのキャラクターか分か...
-
イノセンスのこのシーンは中国...
-
ACCESS2013 VBA サブフォームか...
-
24 TWENTY FOUR シーズンI...
-
Win10にて、サブモニターにのみ...
-
解像度 1366×768 か 1280 × 8...
-
24 シーズン3 ジャック バ...
-
Access2003にて、メインフォー...
-
ACCESS97 サブフォームのレコー...
-
1対多データのレポート表示方...
-
CCNA サブインタフェースの「no...
-
パソコン二台以上持ってる人は...
-
キムタクと小日向文世の共演作...
-
大相撲は途中からサブチャンネ...
おすすめ情報