いつもお世話になってます。
フォーム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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
access サブフォーム間の連動について
その他(Microsoft Office)
-
6
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
7
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Outlook で宛先が複数の場合の人数
-
【スプレッドシート】指定の日...
-
Microsoft Formsの「個人情報や...
-
Microsoft Edgeの「ニュースと...
-
VLOOKUP関数について
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
outlookのメールが固まってしま...
-
teams設定教えて下さい。 ①ビデ...
-
Microsoft365で写真をアルバム...
-
Microsoft Officeに似たキング...
-
会社におけるOfficeライセンス...
-
【スプレッドシート】白色のセ...
-
Excel VBA 日程表からスケジュ...
-
VBAファイルの保存先について
-
エクセル、ワード、ネット検索...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エミネム モッキンバードのP...
-
Win10にて、サブモニターにのみ...
-
36設定
-
解像度 1366×768 か 1280 × 8...
-
サブPCの必要性について
-
Access2003にて、メインフォー...
-
CCNA サブインタフェースの「no...
-
24 シーズン3 ジャック バ...
-
複数のUSBゲームパッドのPC側の...
-
「エリア88」サキと7人の仲間
-
ACCESS2013 VBA サブフォームか...
-
イノセンスのこのシーンは中国...
-
韓国ドラマ キムレオン主演「...
-
24 TWENTY FOUR シーズンI...
-
これなんのキャラクターか分か...
-
陣内智則ファンに質問です。 今...
-
(^^♪ ワードのソフトが入った...
-
1対多データのレポート表示方...
-
木村って名前の人がキムって愛...
-
macbook 2台で無線デュアルディ...
おすすめ情報