- 締切済み
アクセスのメインフォームのみRequeryしたい
アクセスでフォームを作製しています。 シンプルに「メインフォームの中にサブフォームがある」形で作製し各フォームにはクエリをレコードソースとして指定しています。検索したいデータのコードを入力してそのデータを表示させる・・・という一般的なフォームなのですが、メインフォームのみRequeryさせたいのですができますか? [Forms].[メインフォーム].requery とするとサブフォームまで再計算されてしまいますが、ここでサブフォームは再計算させないで、メインフォームだけ再計算させたいのです。宜しくお願いします。
- hinta00
- お礼率45% (18/40)
- オフィス系ソフト
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
<銀行> ID_____銀行コード_____銀行名 1______12300001_______東京銀行 2______32100007_______新日本銀行 <銀行支店> ID_____銀行_ID___銀行支店コード__銀行支店名 1_______1___________123010001________本町支店 2_______1___________123010002________銀座支店 3_______2___________321010001________天神支店 というテーブルを基のメインフォームとサブフォームとを生成したとします。 当然のように、メインに応じてサブフォームも変化します。 そこで、以下のように、この連動にコードで介入するとします。 <リンクを操作する> Private Sub コマンド8_Click() Me.銀行支店_サブフォーム.LinkChildFields = "" Me.銀行支店_サブフォーム.LinkMasterFields = "" End Sub Private Sub コマンド9_Click() Me.銀行支店_サブフォーム.LinkChildFields = "銀行_ID" Me.銀行支店_サブフォーム.LinkMasterFields = "ID" Me.銀行支店_サブフォーム.Requery End Sub これでOKかと思われます。 が、これだけですと、コマンド8_Click() で、やはり再計算されます。 サブフォームのレコードソースに従って再表示されるのが原因です。 そこで、この対策も必要だということになります。 <サブフォームのレコードソースも手を加える> ×銀行支店 ○SELECT 銀行支店.*, * FROM 銀行支店 WHERE (((銀行支店.銀行_ID)=Forms!銀行!ID)); これで、コマンド8_Click() でのサブフォームの再計算が行われなくなります。
関連するQ&A
- Access メインフォームのリフレッシュについて
Access2003 にて、下記の手順で処理するプログラムを作成しています。 メインフォーム(埋め込みサブフォーム ※データシートビュー 一覧表) →埋め込みサブフォームの対象のレコードセレクタをダブルクリック。 →別フォームを起動し、データ入力更新。別フォームを閉じる。 →メインフォームのリフレッシュ し別フォームで変更した内容を反映させたい。 メインフォームのリフレッシュを行いたいのですが、うまくいきません。 ■試してみたこと メインフォーム、サブフォーム、別フォームとあり、 1. 別フォームのデータ更新が終了したあと、 別フォームを閉じる直前にForms![メインフォーム名].requery をしてみた メインフォームは別フォームを開く前の状態と、変化なし 2. 別フォームのデータ更新が終了したあと、別フォームを閉じ サブフォーム内ロジックで、Forms![メインフォーム名].requery をしてみた メインフォームは別フォームを開く前の状態と、変化なし 3. 別フォームのデータ更新が終了したあと、別フォームを閉じ サブフォーム内ロジックで、Me.requery をしてみた メインフォームは別フォームを開く前の状態と、変化なし ----- いずれもメインフォームには変化はありませんでした。 出来れば、メインフォームにはForm_Loadした時と同じように 処理を走らせたい(メインフォームを閉じることなくフォームロードから処理を再開させたい) と考えています。 サブフォームを含め、メインフォームごとリフレッシュするような処理はないでしょうか。 ご存知のかた宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- Access メインフォーム サブフォームにて
お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access2007のサブフォームのRequeryで悩んでいます。。
Access2007のサブフォームのRequeryで悩んでいます。。 Aメインフォーム Bサブフォーム埋め込みコントロール Cサブフォーム リストボックスう AにBを貼り付けBのソースオブジェクトにCを指定しています。 Cは帳票形式です リストボックスをクリックしたら、 CのRecordSourceにSQLを挿入し、 CをRequeryしていますが、全くRequery出来ていない模様なのです。。 B.SourceObject="C"も試したのですが、全く思った通りのデータが抽出されません。 B.Form.Requery Me.B.Form.Requery どれも試して駄目でした。 CのRecordSourceに直接SQLを貼り付けたら思った通りに出ますが、 Requeryが機能していない気がします。 実行結果は、数件対象データはあるのに、Cの中身は空になります。。。 正しくRequeryする方法、もしくは違うやり方があればご教授頂けないでしょうか?
- 締切済み
- その他MS Office製品
- Accessでサブフォームの合計をメインフォームに
Access2007で開発しています。 メインフォームにサブフォームを貼り付けており、 サブフォームに入力した「数量」「単価」から「金額」を計算して表示し、 その合計金額をメインフォームのテキストボックス(非連結)に表示しようと しています。 サブフォームは行単位で追加、削除が可能です。 サブフォームの更新結果が正しくメインフォームに表示されずに困っています。 おわかりの方、おられましたらお教え頂きたく、よろしくお願い致します。 【サブフォーム】 ・レコードソース:T_明細 ・[詳細]項目:数量・・・レコードソース=T_明細・数量 単価・・・ 〃 =T_明細・単価 金額・・・数量および単価のAfterUpdateで計算して表示。 [フォームフッター]項目:金額計・・・コントロールソース=Sum([金額]) ・Vbaコード: Private Sub Form_AfterUpdate() Forms![メインフォーム].合計計算 End Sub Private Sub Form_Delete(Cancel As Integer) Forms![メインフォーム].合計計算 End Sub 【メインフォーム】 ・テキストボックス:「合計金額」(非連結) Public Sub 合計計算() Me.サブフォーム.Requery 方法1: Me!合計金額 =DSum("金額", "T_明細", (キー項目指定 記述省略)) 方法2: Me!合計金額 = Me![サブフォーム].[Form].[金額計] End Sub ここで、 方法1の場合:数量、単価の変更入力及び行追加は正しく動作するが、 行削除の後、メインフォームの「合計金額」が再計算されず、変更前のまま。 方法2の場合:数量、単価の変更入力及び行追加すると、「合計金額」が”0”になる。 行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。
- 締切済み
- Visual Basic
- Access2000 フォーム/サブフォームについて
質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。
- 締切済み
- オフィス系ソフト
- サブフォームにデータが表示されない!
サブフォームにデータが表示されない! フォーム(1)(非連結のtxt顧客コード) フォーム(1)にサブフォーム(2)(レコードソースはクエリ(3))を作り、 クエリ(3)顧客コードの抽出条件に[forms]![フォーム(1)].[form].[txt顧客コード]で選択しています。 フォーム(1)が開いた時にクエリ(3)は抽出しているのにそのデータがサブフォーム(2)に表示されません・・・ フォーム(1)を一度デザインビューにして開き直すとサブフォーム(2)に反映表示されます。 いろんな所にRequeryを入れたりしてみましたが、フォーム(1)を開いたときに一発で表示されません、教えてください!宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- ACCESSで、メインフォームとサブフォームがあるとき・・・
Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Accessのメインフォームとサブフォームの使い方について
Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?
- ベストアンサー
- その他(データベース)
- Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?
フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。
- 締切済み
- その他(データベース)
- ACCESS2000のメインフォームサブフォーム間の移動
Access2000でメインフォームの中に詳細を確認/入力するためのサブフォームを作成しています。 メインフォームの中のコントロールを最後まで入力(enterで移動)していくと、メインフォームの最後のコントロールの次はサブフォームの最初のコントロールに移動します。(これは普通ですよね?) サブフォームはデータの詳細によっては1レコードで終わるものもありますし、複数レコードにわたるものもあります。 サブフォームの入力が終了したときに、キー操作でメインフォームの次のレコードの頭のコントロールに移動する事はできますか? マクロをAccessの方から設定するくらいならできるのですが、自分でSQLをうんぬんする知識はありません。 よい方法があったら教えてください。
- ベストアンサー
- オフィス系ソフト
補足
ご回答ありがとうございます。 作製したフォームはメインとサブで「リンク」させておりません。メインとサブそれぞれ別のフォームとお考え下さい。処理の概要としてはサブフォームへ検索一覧を出力し、さらに詳細のデータを見たいときはサブフォーム内のレコードをクリックすると、メインフォームへ詳細のデータが出力される仕組みです。そのメインフォームへ詳細データを出力させる再計算でサブフォームは再計算させたくないのです。 宜しくお願いします。