• 締切済み

アクセスのメインフォームのみRequeryしたい

アクセスでフォームを作製しています。 シンプルに「メインフォームの中にサブフォームがある」形で作製し各フォームにはクエリをレコードソースとして指定しています。検索したいデータのコードを入力してそのデータを表示させる・・・という一般的なフォームなのですが、メインフォームのみRequeryさせたいのですができますか? [Forms].[メインフォーム].requery とするとサブフォームまで再計算されてしまいますが、ここでサブフォームは再計算させないで、メインフォームだけ再計算させたいのです。宜しくお願いします。

みんなの回答

noname#140971
noname#140971
回答No.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() でのサブフォームの再計算が行われなくなります。

hinta00
質問者

補足

ご回答ありがとうございます。 作製したフォームはメインとサブで「リンク」させておりません。メインとサブそれぞれ別のフォームとお考え下さい。処理の概要としてはサブフォームへ検索一覧を出力し、さらに詳細のデータを見たいときはサブフォーム内のレコードをクリックすると、メインフォームへ詳細のデータが出力される仕組みです。そのメインフォームへ詳細データを出力させる再計算でサブフォームは再計算させたくないのです。 宜しくお願いします。

関連するQ&A