
現在、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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
-
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
アクセス フォームをリクエリしたい
Access(アクセス)
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
6
フォーム内のデータをすべて更新したい
その他(Microsoft Office)
-
7
アクセスVBAのMe!と[ ]
Access(アクセス)
-
8
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
9
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
10
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
ACCESSでコントロールソースの変更
Access(アクセス)
-
13
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
14
access テキストボックスの値取得
Access(アクセス)
-
15
ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです
Access(アクセス)
-
16
フォームに更新ボタンを作ったのですが・・・
Access(アクセス)
-
17
サブフォームの新規レコードに移動したい アクセス
Access(アクセス)
-
18
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
19
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
20
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
「フォームを作成できませんで...
-
5
アクセス フォームをリクエリ...
-
6
wordでテキストボックス内の書...
-
7
帳票フォームのなかにリストを...
-
8
フォームの高さを数値で指定し...
-
9
vbaで列を非表示にする方法はあ...
-
10
エクスポートされたエクセルの...
-
11
Accessのフォームで開く時のウ...
-
12
大至急!アクセスのフォームを...
-
13
Accessフォームを開くときに決...
-
14
チェックボックスの内容をテキ...
-
15
デフォルトでチェックボックス...
-
16
エクセルでフォームのDropDown...
-
17
Word2000 チェックボックス・レ...
-
18
データベースのINT型項目にNULL...
-
19
passwordが入れられません・・・・
-
20
レコードを保存するコード ア...
おすすめ情報
公式facebook
公式twitter