
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
アクセエスのレコードの更新をVBAでするには?
Access(アクセス)
-
5
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
6
ACCESS フォームからサブフォームのデータを更新・入力したい
Access(アクセス)
-
7
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
8
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
9
access テキストボックスの値取得
Access(アクセス)
-
10
ACCESSフォーム入力後の確定
Access(アクセス)
-
11
アクセスVBAのMe!と[ ]
Access(アクセス)
-
12
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
13
ACCESS フォームをそのまま印刷について
その他(データベース)
-
14
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
15
どこにもフォーカスを当てたくない
Access(アクセス)
-
16
Access2010、値を入力したら自動保存の方法
Access(アクセス)
-
17
メインフォームとサブフォームのレコードを複製
Access(アクセス)
-
18
ACCESS VBA メインフォーム及びサブフォームのフィルタのクリア
Access(アクセス)
-
19
access クエリ yes/no型のクエリの抽出の記述を教えて下さい。
Access(アクセス)
-
20
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access サブフォームにリストを...
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Accessのサブフォームから値を...
-
Access2000、これはいったい・...
-
AccessのFormのみをスクリーン...
-
レコードセットで得た結果をサ...
-
サブフォームが見えなくなる。
-
ACCSESS2013VBA フォームのレコ...
-
別MDBのフォームを起動
-
サブフォームのデータを保存す...
-
Accessで、一覧からクリックし...
-
Access VBA acCmdSelectRec...
-
サブフォームでのダブルクリッ...
-
(ACCESS)条件に応じて、テキ...
-
サブフォームでフィルタしたデ...
-
コンボボックスで選択実行後、...
-
[Access2000] フォーム間で値の...
-
Accessでのフォーム表示がうま...
-
初心者です。accessで請求書を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
(ACCESS)条件に応じて、テキ...
-
Access2000、これはいったい・...
-
Access 複数フォームを...
-
ACCSESS2013VBA フォームのレコ...
-
access サブフォームにリストを...
-
サブフォームでのダブルクリッ...
-
サブフォームのデータを保存す...
-
Accessのサブフォームから値を...
-
Accessでサブフォームの中の並...
-
Access2000 サブフォームのReco...
-
サブフォームが見えなくなる。
-
2回目に画面のレコードセットの...
-
AccessのFormのみをスクリーン...
-
Access VBA acCmdSelectRec...
-
Access 2010 分割フォームのフ...
-
アクセスで サブフォームの表...
-
初心者です。accessで請求書を...
-
AccessのDoCmd.ApplyFilterの使...
-
Accessで、サブフォームのある...
おすすめ情報