
No.1ベストアンサー
- 回答日時:
> 別のフォーム上にデータを入力し保存
「レコードの保存」を行うには、以下のようにします:
(但し、回答の簡素化のため、エラー処理は省略しています)
※フォーム名を「メイン」とした場合。
Private Sub コマンド0_Click()
'別フォームへのレコードの入力
Forms!メイン!ID = Me!ID + 1 '入力の一例
'レコードの保存
Forms!メイン.SetFocus '対象フォームをアクティブ化
RunCommand accmdSaveRecord 'レコードの保存
Me.SetFocus '実行元のフォームに戻る
End Sub
なお、「対象フォームのRequery」でも通常はレコードの保存ができますが、
職場で作成したMDBファイルで、何かの条件で、それだとエラーになる場合が
あったため、この場では上記を推奨しておきます。
(どういう条件だったかは、失念してしまいましたが・・・(汗))
> サブフォームのデータも保存
この場合は、上記に加えて、「サブフォームのアクティブ化」と「レコードの保存」
を実行してやればOkです:
※サブフォーム名(→プロパティシートの『その他』タブの『名前』に表示される
もの)を「サブ」とした場合。
Private Sub コマンド0_Click()
Forms!メイン!ID = Me!ID + 1
'メインフォームのレコード保存
Forms!メイン.SetFocus
RunCommand accmdSaveRecord
'サブフォームのレコード保存
Forms!メイン!サブ.SetFocus
RunCommand acCmdSaveRecord
Me.SetFocus
End Sub
なお、「Forms!メイン」を何度も参照する代わりに、Withステートメントを使用
したり、Form型のオブジェクト変数に格納してやると、若干ながら端末への
負荷が軽減されますので、併せて今後の参考まで。
(今回提示した程度のものなら、昨今のPCでは大した負荷にはなりませんが(汗)
どちらかというと、見やすくなるというメリットの方が大きいかもしれません)
Private Sub コマンド0_Click()
Dim Frm As Form
'メインフォームを変数Frmに格納
Set Frm = Forms!メイン
With Frm
!ID = Me!ID + 1
.SetFocus
RunCommand accmdSaveRecord
!サブ.SetFocus
RunCommand acCmdSaveRecord
End With
Me.SetFocus
'念のため、明示的にメモリを解放
Set Frm = Nothing
End Sub
※「Forms!メイン!サブ」には、「.Form」や「.Controls」が省略されています。
そちらを入れた方が使い慣れているようでしたら、それらを入れてもOkです。
分かりやすい回答ありがとうございました。おかげさまで解決いたしました。
私の持っている解説書にはご回答のような説明が載っていません。ご推薦の解説書があれば教えていただけますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Excel(エクセル) エクセルのファームにプルダウン設置できますか? 2 2022/05/19 23:38
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
このQ&Aを見た人はこんなQ&Aも見ています
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
ACCESS フォームからサブフォームのデータを更新・入力したい
Access(アクセス)
-
-
4
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
5
アクセエスのレコードの更新をVBAでするには?
Access(アクセス)
-
6
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
7
ACCESSフォーム入力後の確定
Access(アクセス)
-
8
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
9
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
10
ACCESS フォームをそのまま印刷について
その他(データベース)
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
13
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
14
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
15
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
16
Access2010、値を入力したら自動保存の方法
Access(アクセス)
-
17
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
18
サブフォームの新規レコードに移動したい アクセス
Access(アクセス)
-
19
Accessで、フォームに情報を入力途中で、やめる(レコードに保存しない)ということは出来ますか?
Access(アクセス)
-
20
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access 複数フォームを...
-
ACCSESS2013VBA フォームのレコ...
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
アクセスからマップ画像をリンク
-
(ACCESS)条件に応じて、テキ...
-
Access2000におけるソートの仕...
-
Accessでサブフォームの中の並...
-
ACCESSでfilterとorderbyについて
-
Accessでのフォーム表示がうま...
-
AccessのFormのみをスクリーン...
-
サブフォームの切り替え方を教...
-
サブフォームでフィルタしたデ...
-
Access2000 サブフォームのReco...
-
単票フォームと帳票フォームを...
-
ACCESSでサブフォームの...
-
access 2019で、メインフオーム...
-
Accessのサブフォームから値を...
-
Accessで、一覧からクリックし...
-
サブフォームが見えなくなる。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
(ACCESS)条件に応じて、テキ...
-
Access2000、これはいったい・...
-
access サブフォームにリストを...
-
サブフォームが見えなくなる。
-
Accessでサブフォームの中の並...
-
サブフォームでのダブルクリッ...
-
AccessのFormのみをスクリーン...
-
ACCSESS2013VBA フォームのレコ...
-
Accessのサブフォームから値を...
-
初心者です。accessで請求書を...
-
Access2000 サブフォームのReco...
-
2回目に画面のレコードセットの...
-
ACCESSでfilterとorderbyについて
-
Accessでのフォーム表示がうま...
-
別MDBのフォームを起動
-
Accessで、一覧からクリックし...
-
サブフォームのデータを保存す...
-
googleフォームでインストール...
おすすめ情報