• ベストアンサー

アクセスの削除クエリでいいのでしょうか?

 データベースで検索できるようにしたいのですが・・・・。クエリの検索結果をフォームに反映させています。  検索結果表示後、もう一度検索フォームに戻り、検索をかけたときヒットするデータがないにも関わらず前回の検索結果が表示されたままになってしまいます。 削除クエリを使用すればいいのでしょうか?  また削除クエリをどのように設定したらいいのでしょうか?(たとえば抽出条件が必要なのでしょうか?)  この場合、マクロはいったん削除クエリを開き、もう一度クエリを開く設定でいいのでしょうか?分かりにくい質問ですいませんが教えてください

質問者が選んだベストアンサー

  • ベストアンサー
noname#14668
noname#14668
回答No.2

はい、フォームのもとになっているクエリのデータが変わっても、更新行為をしないと反映されません。 具体的には、更新したいフォームに、コマンドボタンウイザードでフォーム→再表示を選択し、「再表示」ボタンを作ってみてください。押すとほら、更新されました。ボタン押し下げ動作を省略したい場合は、たとえば検索画面に戻るボタンがあるとしたら、そのボタンのクリック時イベントに、再表示ボタン内の主要ソースを貼り付ければ用を成すはずです。 但し、サブフォームをご利用の場合など、この方法がふさわしくない場合もあります。 確実に更新するには該当のフォームを閉じて開きなおすことです。マクロを作ってボタン化すれば少々画面がちらつくだけでそう不自然ではありません。 お試し下さい。

manami7070
質問者

お礼

丁寧な解説ありがとうございました。 とても助かりました。まだまだ初心者なのでがんばって勉強します。また教えてGOOで質問することもあるかもしれませんが見かけたら教えて下さい。  本当にありがとうございました。まなみ

その他の回答 (1)

noname#14668
noname#14668
回答No.1

テーブルを検索結果の一時保管場所バッファとして、使っていらっしゃるのでしょうか? とするならば削除クエリで充分です。 そうでないならば再表示のタイミングなど別のノウハウが必要です。 補足情報をください。 ちなみに、削除クエリは全削除であれば抽出条件は要りません。うっかり大事なものを消さないようにご注意下さい。 抽出条件を設定すれば部分削除できます。

manami7070
質問者

補足

 (1)フォームに設定してあるボタンを押したときに、フォームをその度毎に消しているか? 今回のケースでは、検索画面結果から検索画面に戻るときに検索画面結果を一度消してから、検索画面を表示し、再度検索条件を入力してから、検索画面結果を表示しているならいいが、消さずに検索画面に戻っても、検索画面結果がその背面に残っていて、それが再度最前面に出てくるような設定なら表示は最初の検索のままになるのもうなずける。  (2)(1)にも関係するが、クエリの内容をフォームに反映させているとき、クエリが更新されれば、フォーム側では何もしなても勝手にデータ表示が更新されるのか? 例えば、Aというクエリを参照しているフォームがあってそのフォーム上にAというクエリを書き換えるボタン(削除クエリなどを実行するなど)があったとして、そのボタンを押すと、Aというクエリの内容が書き換わり、その変更内容がそのままフォームに反映されるか? それとも、フォームには書き換え前のクエリのデータ内容が表示されているので、もとのクエリのデータが変わった場合は更新行為をしないと反映されないのか?  その場合、更新はどのように行うのか?

関連するQ&A