Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


247 / 2272 ツリー ←次へ | 前へ→

【12414】検索フォームを開いた時にサブフォームを更新したくない 中村 13/10/1(火) 18:38 質問[未読]
【12415】Re:検索フォームを開いた時にサブフォーム... hatena 13/10/1(火) 21:47 回答[未読]
【12416】Re:検索フォームを開いた時にサブフォーム... 中村 13/10/2(水) 10:10 質問[未読]
【12417】Re:検索フォームを開いた時にサブフォーム... hatena 13/10/2(水) 10:36 回答[未読]
【12418】Re:検索フォームを開いた時にサブフォーム... 中村 13/10/2(水) 13:03 お礼[未読]

【12414】検索フォームを開いた時にサブフォームを...
質問  中村  - 13/10/1(火) 18:38 -

引用なし
パスワード
   いつもお世話になっております。

現在検索フォームにサブフォームを設置し、そこに検索結果が表示されるようにしております。
検索項目は複数あり、クエリの抽出条件で以下のように空白の場合は全ての条件で検索されるように設定しています。

[Forms]![検索フォーム]![項目1] Or [Forms]![検索フォーム]![項目1] Is Null
[Forms]![検索フォーム]![項目1] Is Null

この結果、検索フォームを開くと全てのレコードが表示されてしまいます。
検索条件を入力すれば、もちろん条件に引っかかるものだけが表示されます。

今現在はレコード数が少ないので大きな支障はありませんが、
今後、レコード数が増えた時にフォームを開くのが重くなるのではと心配です。

そこで、フォームを開いた時点では更新しない方法がないかと思い質問させていただきました。
色々と検索はしてみたものの、更新されないといった内容はたくさんあるのですが、
あえて更新させないといった内容が見つからず、こちらに書き込みしました。

何卒宜しくお願い致します。

【12415】Re:検索フォームを開いた時にサブフォー...
回答  hatena  - 13/10/1(火) 21:47 -

引用なし
パスワード
   サブフォームの開くときのイベントプロシージャで下記のように記述しておきます。

Me.Filter = "False"
Me.FilterOn = True


メインフォームの条件を入力する各テキストボックスの更新後処理で、下記のように記述します

With Me.サブフォームコントロール名.Form
  .Requery
  If .FilterOn Then
    .Filter = ""
    .FilterOn = False
  End If
End With

【12416】Re:検索フォームを開いた時にサブフォー...
質問  中村  - 13/10/2(水) 10:10 -

引用なし
パスワード
   ▼hatena さん:
>サブフォームの開くときのイベントプロシージャで下記のように記述しておきます。
>
>Me.Filter = "False"
>Me.FilterOn = True
>
>
>メインフォームの条件を入力する各テキストボックスの更新後処理で、下記のように記述します
>
>With Me.サブフォームコントロール名.Form
>  .Requery
>  If .FilterOn Then
>    .Filter = ""
>    .FilterOn = False
>  End If
>End With

早々のご回答ありがとうございました。
こちらの記述でメインフォームを開いても更新はされなくなりました。
しかし、私の質問の内容に不備があり、再度の質問になってしまいました。

検索項目の中には範囲指定(クエリの抽出条件でBetween〜And〜)しているものもあり、
また、複数条件で検索する場合もあります。
よって今回ご教示頂いた記述では思うように検索結果が得られなくなってしまう場合も出てきてしまいます。

理想としましては、検索条件を各ボックスに入力し、検索ボタンを押してからサブフォームに検索結果が表示されればと思っております。

こちらの不備により度々の質問になってしまい大変恐縮では御座いますが、何卒宜しくお願い致します。

【12417】Re:検索フォームを開いた時にサブフォー...
回答  hatena  - 13/10/2(水) 10:36 -

引用なし
パスワード
   >検索項目の中には範囲指定(クエリの抽出条件でBetween〜And〜)しているものもあり、
>また、複数条件で検索する場合もあります。
>よって今回ご教示頂いた記述では思うように検索結果が得られなくなってしまう場合も出てきてしまいます。

抽出結果が希望と異なるということは、クエリの抽出条件の設定の問題で、今回のコードは関係ないと思います。開いた直後は何も抽出せずに、その後、クエリの抽出条件で抽出するという処理ですので。

>理想としましては、検索条件を各ボックスに入力し、検索ボタンを押してからサブフォームに検索結果が表示されればと思っております。

これに関しては、テキストボックスの更新後処理のイベントプロシージャのコードを、検索ボタンのクリック時に変更すればいいだけですね。

【12418】Re:検索フォームを開いた時にサブフォー...
お礼  中村  - 13/10/2(水) 13:03 -

引用なし
パスワード
   ▼hatena さん:
>>検索項目の中には範囲指定(クエリの抽出条件でBetween〜And〜)しているものもあり、
>>また、複数条件で検索する場合もあります。
>>よって今回ご教示頂いた記述では思うように検索結果が得られなくなってしまう場合も出てきてしまいます。
>
>抽出結果が希望と異なるということは、クエリの抽出条件の設定の問題で、今回のコードは関係ないと思います。開いた直後は何も抽出せずに、その後、クエリの抽出条件で抽出するという処理ですので。
>
>>理想としましては、検索条件を各ボックスに入力し、検索ボタンを押してからサブフォームに検索結果が表示されればと思っております。
>
>これに関しては、テキストボックスの更新後処理のイベントプロシージャのコードを、検索ボタンのクリック時に変更すればいいだけですね。

ご回答ありがとうございました。
無事理想通りの形にすることができました。

またの機会が御座いましたら宜しくお願いします。

247 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free