![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在、Accessにて家計簿を作っているのですが・・・。
始めにトップページとなるフォームを表示し、そこに今年の支出金額と入力フォームを開くボタンを表示してあります。
入力フォームを開いてもトップフォームは閉じず、後ろで表示されたままです。
入力フォームで使った金額などを入力して閉じると後ろに表示されたままのトップフォームにアクティブが戻るのですが・・・この方式だとトップフォームに表示してある今年の支出金額が、一度トップフォームを閉じて開きなおさないと最新の情報に更新されません。
入力フォームを開く際にトップフォームを閉じ、入力フォームを閉じる際にトップフォームを再度開くというやり方なら支出金額も最新の情報が表示されるのですが、どうしてもトップフォームを開いたままで入力フォームを開き、入力終わって閉じたらトップフォームの支出金額が自動で更新されるというやり方をしたいので、知識のある方がいましたらご指導お願いいたします。
つまるところ、フォームを閉じずにそのフォームにある、クエリを参照にしたテキストボックスの内容を最新の情報に更新する方法を教えてくださいと言うことですw
分かりにくくてすみません。
No.5ベストアンサー
- 回答日時:
Forms![トップフォーム]![コントロール名].Requery
でトップフォームをアクティブにしなくても行けるはずなのですが・・。
それではトップフォーム名を取得してからRequeryしてみてはどうですか
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Forms![トップフォーム]![コントロール名].Requeryの代わりに
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.SelectObject acForm, "トップフォーム名"
DoCmd.Requery "コントロール名"
お礼が遅くなってすみません。
アドバイスに従い試してみましたが、ボタンを押したら入力フォームじゃなくトップフォームが閉じてしまうようになりました。(汗
もうどうにもなりそうにないのでトップフォームに更新ボタンをつけてMeRequeryで手動更新することにしましたw
No.4
- 回答日時:
>コードで参照されている'トップフォーム'フォームが見つかりません。
」というエラーForms![トップフォーム]![コントロール名].Requery
のトップフォームとコントロール名はYOU-JIさんの作ったフォームの名前と今年の支出金額を表示するコントロール名(テキストボックスならその名前)に変更して記述してください。
あ、すみません(汗
『トップフォーム』、『コントロール名』はこちらで使っているトップフォームの名前、テキストボックスにそれぞれ直して記述しました。
それで出来なかったのでこちらで使ってるフォーム名をそのままエラーメッセージのところに使ったら解かりにくいと思って「トップフォーム」と変更して投稿したわけです。
No.3
- 回答日時:
トップフォームの「アクティブ時」のイベントプロシージャに
Private Sub Form_Activate()
テキスト1.Requery
End Sub
などと書く。更新したいテキストボックスが複数あれば
Private Sub Form_Activate()
テキスト1.Requery
テキスト2.Requery
テキスト4.Requery
End Sub
などと追加すれば良い。なお、
Private Sub Form_Activate()
Me.Requery
End Sub
では正しく更新しないので注意。
ボタンを押した所に更新のコードを入れると、そのボタンを押した時しか更新しないので、フォームの「アクティブ時」にコードを書くのが確実。
こうする事で「クエリの元になる、データが入ってるテーブルを直接開いて、手で数値を書き換えた」とかのイリーガルなケースでも、フォームがアクティブになれば必ず更新がかかる。
回答ありがとうございます。
トップフォームのアクティブ時だけでなく、フォーカス取得時や非アクティブ時、クリック時など色々なイベントのコードの場所に貼り付けて試してみましたが、どうにも更新できませんでした。
もしかすると私のやり方が悪いのかもしれません・・・(汗
No.2
- 回答日時:
入力フォームを閉じる際に入力したレコードを保存しトップフォームのクエリをRequeryして入力フォームを閉じるようにすれば出来ます。
Forms![トップフォーム]![コントロール名].Requery
の記述を追加すれば出来ます。
Private Sub Cmd1_Click()
・
・
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Forms![トップフォーム]![コントロール名].Requery
DoCmd.Close
・
・
End Sub
途中省略してありますがこんな感じでRequery出来ます。
VBEのRequeryのヘルプでも参照してみてください。
回答ありがとうございます。
アドバイスどおり入力フォームの閉じるイベントのところに
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Forms![トップフォーム]![コントロール名].Requery
の記述を追記しましたが、「マクロ式または Visual Basic コードで参照されている'トップフォーム'フォームが見つかりません。」というエラーメッセージが出てしまいました。
これからRequeryで検索かけてネットで調べてみます
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
No.1
- 回答日時:
データを追加した際にトップページのフォームに
requery
refresh
をかけると更新されるのではないかと思います。
ちなみに、データの追加は何かのボタンを押した際に行われるようになっていますか?
お礼が少し遅れてしまいました。
回答どもです。
データ入力フォームはテーブルを参照して作ってありますので、ボタンを押さなくても一項目入力するごとに自動的にテーブルに書き込まれていく方式っぽいです。
ホントは決定ボタンを押せばデータを書き込み、見たいな感じでやりたいのですが、やり方が解からないのでとりあえず後回し中ですw
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessで独自メニューバーまたはリボンを作成したい 1 2022/12/02 14:31
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- その他(ブラウザ) Mycrosoft Edge フォームの履歴を完全に削除したい 3 2022/08/11 09:59
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
5
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
6
アクセス:フォームを閉じずにデータ更新するには
その他(データベース)
-
7
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
8
アクセスでテーブルの変更内容をフォームに反映させるには?
その他(データベース)
-
9
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
10
アクセス: フォーム上で計算した数字をテーブルに保存したい。
Access(アクセス)
-
11
ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです
Access(アクセス)
-
12
どこにもフォーカスを当てたくない
Access(アクセス)
-
13
アクセスの更新クエリでカレントレコードのみ更新したい
Access(アクセス)
-
14
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
15
新規レコード行を非表示にしたい
Access(アクセス)
-
16
2つ目のレコードの値を取得するには?
Access(アクセス)
-
17
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
18
アクセスで月単位の抽出
Access(アクセス)
-
19
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
20
1つ前のレコードのフィールドをコピーするVBAについて
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
アクセスで複数列にまたがる同...
-
「フォームを作成できませんで...
-
デフォルトでチェックボックス...
-
MSワード 年齢を計算表示でき...
-
Accessフォームを開くときに決...
-
無効なパスというエラーメッセ...
-
Excelのデータフォームの設定変更
-
Accessのフォームを改ページしたい
-
access vba 開いていないフォー...
-
Accessで、フォームからフォー...
-
Accessでフォームとレポートの...
-
アクセス フォームをリクエリ...
-
フォームの高さを数値で指定し...
-
大至急!アクセスのフォームを...
-
アクセスで、androidのスマホサ...
-
Access フォームヘッダーに作成...
-
Wordのテキストフォーム書式設...
-
85問、5件法のアンケート作成 ...
-
エクスポートされたエクセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
「フォームを作成できませんで...
-
Accessで、フォームからフォー...
-
フォームの高さを数値で指定し...
-
Accessのフォームで開く時のウ...
-
デフォルトでチェックボックス...
-
MSワード 年齢を計算表示でき...
-
Accessフォームを開くときに決...
-
アクセス フォームをリクエリ...
-
Excelのデータフォームの設定変更
-
ACCESS クロス集計クエリの抽...
-
大至急!アクセスのフォームを...
-
アクセスで複数列にまたがる同...
-
エクスポートされたエクセルの...
-
アクセスのレコードをフォーム...
-
access vba 開いていないフォー...
-
ACCESSでオートメーションエラー
-
Access テキストボックスの通貨型
-
アクセスで同じフォームを違う...
-
Access 2010フォームの全画面表示
おすすめ情報