現在、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で検索かけてネットで調べてみます
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でテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
-
4
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
5
アクセスでテーブルの変更内容をフォームに反映させるには?
その他(データベース)
-
6
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
7
アクセス:フォームを閉じずにデータ更新するには
その他(データベース)
-
8
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
9
アクセスの更新クエリでカレントレコードのみ更新したい
Access(アクセス)
-
10
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
11
アクセス: フォーム上で計算した数字をテーブルに保存したい。
Access(アクセス)
-
12
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
13
どこにもフォーカスを当てたくない
Access(アクセス)
-
14
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
15
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
16
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
17
新規レコード行を非表示にしたい
Access(アクセス)
-
18
Accessで今日から5日後
その他(データベース)
-
19
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
20
2つ目のレコードの値を取得するには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
「フォームを作成できませんで...
-
マイクロソフト アクセス2021の...
-
Accessで、フォームからフォー...
-
アクセス フォームをリクエリ...
-
Accessフォームを開くときに決...
-
Accessに関する質問です。 クエ...
-
アクセス2010 作った記憶のな...
-
アクセスで、androidのスマホサ...
-
Excelのデータフォームの設定変更
-
アクセスで、スマホサイズのフ...
-
MSワード 年齢を計算表示でき...
-
フォームなどに半角カナで入力...
-
Accessのフォームを改ページしたい
-
access vba 開いていないフォー...
-
デフォルトでチェックボックス...
-
vbaで列を非表示にする方法はあ...
-
Accessのフォームで開く時のウ...
-
エクスポートされたエクセルの...
-
vbaで帳票フォームで開きたい ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
「フォームを作成できませんで...
-
Accessで、フォームからフォー...
-
フォームの高さを数値で指定し...
-
MSワード 年齢を計算表示でき...
-
デフォルトでチェックボックス...
-
マイクロソフト アクセス2021の...
-
Accessのフォームで開く時のウ...
-
Accessフォームを開くときに決...
-
アクセスで、androidのスマホサ...
-
アクセス フォームをリクエリ...
-
Accessに関する質問です。 クエ...
-
Excelのデータフォームの設定変更
-
アクセスで、スマホサイズのフ...
-
エクセルで各セルをダブルクリ...
-
Access2003 フォーム入力中に...
-
アクセスで複数列にまたがる同...
-
アクセスで同じフォームを違う...
-
Accessのフォームを改ページしたい
-
大至急!アクセスのフォームを...
おすすめ情報