- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2007 サブフォームの新規レコードをすぐにフォームに表示させる方法)
Access2007 サブフォームの新規レコード表示方法
このQ&Aのポイント
- サブフォーム上で新規入力したデータがフォームのコンボボックスに反映されない問題が発生しています。
- 入力ボタンを押してもデータが表示されず、一旦フォームを閉じて開くと表示されます。
- 入力ボタンを修正することで、新規入力データを即座に反映させることができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> コンボボックスは空白となり、商品データが表示されません。 コンボボックスのリストは、参照元のテーブルに対する新規登録を 自動で反映するようにはなっていないので、それを反映させるための コードが必要になります。 この反映には、Requeryを使用します。 (値集合タイプが「テーブル/クエリ」のコンボボックスの場合) 以下のコードは、コンボボックス名が「商品名」の場合です。 (IDそのものを表示する「ID」テキストボックスと、コントロールソースが 同じで商品名を表示する「商品名」コンボボックスがあるものと推測) Private Sub 入力_Click() DoCmd.RunCommand acCmdSaveRecord Forms!フォーム!商品名.Requery Forms!フォーム!ID = Me.ID End Sub また、表示を更新する対象がメインフォームなのでしたら、「Me」を使用して 以下のようにすることもできますので、参考まで: Private Sub 入力_Click() DoCmd.RunCommand acCmdSaveRecord With Me.Parent !商品名.Requery !ID = Me.ID End With End Sub ※「DoMenuItem」はAccessのバージョンへの依存性が高いため、 ヘルプでは「DoCmd」での対応が推奨されています。
お礼
ご回答ありがとうございました。 Requeryでできました。 DoMenuItemについても勉強になりました。これからはDoCmdを使おうと思います。 ありがとうございました。