Microsoft Access 2003の知識をお貸し下さい。


現在、フォームAに、リレーションシップで接続された他のテーブルに関連付けられたコンボボックスを配置しています。コンボボックスのリスティングに希望するレコードが無い場合、同コンボボックスと関連付けられたフォームBを開くため、「フォームBを開く」ボタンを押して、希望するレコードを追加した後、同じくフォームBに配置された「フォームを閉じる」ボタンで同フォームを閉じます。その後、自動的にフォームAに戻るわけですが、フォームAの「データの再表示」ボタンを押さないと、フォームBで行ったレコードの追加がコンボボックスのリスティングに反映されません。

そこで、この「データの再表示」ボタンを押す手間を省くには、どのような方法があるでしょうか。

できるdけ具体的にご解説いただければ幸いです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/17 05:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:fuentebella No.1

回答回数269ベストアンサー獲得回数30

ポイント35pt

フォームBの「フォームを閉じる」ボタンを押したときに、フォームAを再表示させてからフォームを閉じるようにすればよいと思います。


  • フォームBをデザインビューにした状態で、フォームBの「フォームを閉じる」ボタンを右クリック 「イベントのビルド」をクリック
  • 出てきた画面の DoCmd.Closeの行の直前に フォームA.Refresh 入れます。
     [Forms]![フォームA].Refresh
     DoCmd.Close

 フォームAは、実際のフォームの名前です。もしフォームが 「営業コード追加」という名前だったら

[Forms]![営業コード追加].Refresh

id:fester No.2

回答回数124ベストアンサー獲得回数20

ポイント35pt

フォームB に次のコードを追加してみてください。


Private Sub Form_Close()
    If CurrentProject.AllForms("フォームA").IsLoaded Then
        '元のフォームが開いていたら、コンボを再クエリ
        Forms!フォームA!コンボ名.Requery
    End If
End Sub

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません