いつもお世話になっております。アクセス初心者です。
あるフォームのチェックボックスのオンオフとコンボボックス、
クエリの選択条件が思うように連携できなくて困っています。
やりたいことは、、、フォームのチェックボックスが、
ON(True)ならば、
フィールドにコンボボックスのキーワードを含むレコードおよびフィールドが空白のレコードを抽出し、
OFF(False)ならば、
フィールドにコンボボックスのキーワードを含むレコードのみでフィールドが空白のレコードは抽出しない、
としたいのですが…。
IIfやSwitchで式を書きましたが、チェックを入れても外しても、どちらも抽出件数が0件になります。
クエリの実行は、コマンドボタンで別のフォームを開いています。
(IIfでは、エラーが出ているのか、チェックを入れた時『~キャンセルされました』と出ます。
IIf(…,…,IIf(…,…,…)) という感じで書きました。)
Switchの時のクエリの抽出条件の式は、次のような感じです。
Switch([Form]![チェックボックス]=True,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*" Or Is Null,[Form]![チェックボックス]=False,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*")
( Like の前の『([テーブル名].[フィールド名])』は、式をビルドすると、勝手に追加されてきます。)
このようなことはできないのでしょうか? 別の方法が必要でしょうか?
すみませんが、教えてください。宜しくお願い致します。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
チェックボックスが3値(True/False/Null)をとる設定?
>コマンドボタンで別のフォームを開いています。
where条件を持つテキストボックスを配置(運用時は非表示にする)
クリックで検索実行するように作ると考えやすいかも。
別フォームが使用するクエリは、上記のwhere条件を持つテキストボックスを参照させる。
No.4
- 回答日時:
たぶん、「アクセス チェックを入れたキーワードで絞り込み」という
標題のページだったと思うのですが、先ほど見たらページがなくなって
いました。質問はこのページの内容に即したものだと思うのですが、
一応、ページをコピーしていたので内容を見ながら、ちょこちょこ
作ってみたのですが。
肝心のページがなくなっているので、コードを表示しようかどうか
迷っているのですが、どうしましょう?????
なにせ、コードの量が多いので、ひょっとしたら説明も含めると
2ページくらいになるかもしれません。一応、必要なことは
入っています。
どうしましょう????
この回答への補足
piroin654様、誠に申し訳ありません。
半年経過していますね。すみません。
考えていただいてありがとうございます。
パソコンの入れ替えなどがあって、バタバタしていたため、
確認が遅くなってしまいました。
『遅い』というレベルではありませんが…。
その間に、この質問も消えたようです。
もし、まだ、作っていただいたコードをお持ちであれば、
お送りください。お待ちしております。
メールアドレスなどが必要であれば、お知らせします。
よろしくお願いします。
No.3
- 回答日時:
> しかし、キーワードで『含む』選択をしているフィールドが
> 他にもたくさん(このほかに4~5フィールド)あって…。
こういうことを後からいわれても困るんですよね。
フィールド数が多い場合は、やり方を変える必要がありますので。
もちろん、どんな複雑な WHERE条件でも、スラスラ書けるなら普通にクエリでかまいませんが、
条件が追加になった場合など、泣きたくなると思います。
あと、何らかの事情で、何が何でも、クエリでなければいけない場合、
これでも、複雑なら、動的に SQL を書き換えてしまうこともあります。
フォームで、抽出するには
・クエリのWhere条件 を使用。
・フォームのフィルタを使用。
・レコードソースを書き換える。
などありますが、
条件の組み合わせが多くなる場合は フィルタ を使うのが普通だと思います。
具体的な方法はこちらを参考に。
複数条件の抽出フォームの設計 その1
http://hatenachips.blog34.fc2.com/blog-entry-129 …
下の、「関連してそうな記事」の
複数条件の抽出フォームの設計 その2
複数条件の抽出フォームの設計 その3
にも目を通すことをお勧めします。
申し訳ありません。説明不足でした。
頂いたページについて、よく読んで、勉強します。
大変お手数をおかけしました。ありがとうございました。
No.2
- 回答日時:
No.1 です。
肝心なところが間違っていましたね。 (^^;
> 2.[チェックボックス] がオフ であって、[フィールド名] が Null であるもの。
2.[チェックボックス] がオン であって、[フィールド名] が Null であるもの。
SQL は 合っています。
なお、今回のケースでは影響ありませんが
フォームのチェックボックスに、既定値(大抵の場合 「False」 ) を設定しておかないと
誤動作する場合があります。
No.1
- 回答日時:
条件を整理すると、ずっと単純になり、
IIf も Switch も不要になります。
[コンボボックス] の部分一致 は、[チェックボックス] の値と無関係です。
ですから、[フィールド名] の抽出条件は
1.[コンボボックス] と部分一致するもの。
2.[チェックボックス] がオフ であって、[フィールド名] が Null であるもの。
このいずれかを満たすものです。(OR 条件です。)
SQL なら
SELECT フィールド名
FROM テーブル名
WHERE (フィールド名 Like "*" & [Forms]![F検索]![キーワード] & "*") OR
((フィールド名 Is Null) AND ([Forms]![F検索]![チェックボックス]=True))
※抽出条件を入力するフォーム名が 「F検索」 の場合です。
ご自分のフォーム名に修正してください。
お礼が遅くなりました。すみません。
ご回答ありがとうございます。
説明して頂いた意味は、なんとなく分かりました。
SQL文も『なんとなく』分かりました。
しかし、キーワードで『含む』選択をしているフィールドが
他にもたくさん(このほかに4~5フィールド)あって…。
他のフィールドは、とりあえず、
今は、チェックボックスを使わないのですが、
フィールド数が多く、降順とかもあって、
アクセスでSQL文を見ると、目がチカチカします(苦笑)。
そこで、この教えて頂いた文を挿入できるものであれば、挿入の仕方を教えてほしいのですが…。
現在のSQL文のイメージは、
SELECT フィールド名,フィールド名,フィールド名,…
FROM (( …INNER JOIN…ON… LEFT JOIN…ここはわけが分かりません(苦笑)。省略です。
そして、
WHERE
ここからは、Like "*" & コンボボックス & "*" Or Is Null…をANDでつなぐ文が連なっていて、
最後に降順のORDER BY…という感じです。
ここに挿入することだと思うのですが…。
『( )』の付け方など、イメージだけでも結構です。
もう少し教えていただけないでしょうか。
または、クエリの中で何とか処理できる方法があると
助かります。宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) accessの日付フィールドから前年度だけを取り出したい 3 2022/04/13 23:13
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
access2019 チェックボックスと連動したクエリ抽出条件について
Access(アクセス)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
-
4
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
5
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
6
Accessチェックボックス 一度で複数のチェックを入力
Access(アクセス)
-
7
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
8
ACCESSでフォームのチェックボックスにチェックを入れて任意の数値を入力したい!!!
Access(アクセス)
-
9
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
10
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
11
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
12
Accessのフィールド名に半角括弧を使ってしまった
Visual Basic(VBA)
-
13
Access チェックボックスでチェックしたデータのみフォームで表示
Access(アクセス)
-
14
Access チェックボックスを利用した絞込検索のクエリ記述
その他(Microsoft Office)
-
15
AccessでIDを入力したら他の項目も自動で表示
Access(アクセス)
-
16
AccessVBA 実行時エラー'2766'について質問です。
その他(データベース)
-
17
NULL値を含む場合のフィルタ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
アクセスのフィルタ nullにつ...
-
Access2007でSQLの複数列副問い...
-
Accessのクエリーのゼロデータ...
-
access(アクセス):パラメータ...
-
Accessクエリ特定文字列のカウ...
-
Access:固定長文字列ファイル...
-
AccessからExcelへの条件付エク...
-
accessで空白の時の抽出
-
Accessのデータの一部を削除す...
-
SQLのLIKE検索で清音と濁音/半...
-
Access クエリで連結する文字...
-
ACCESS クエリ 抽出条件が多い場合
-
access2019 チェックボックスと...
-
アクセスの抽出の仕方
-
Accessのクエリで1フィールドの...
-
クエリで複数条件を同時に抽出...
-
ACCESS クエリにて日付で抽出...
-
アクセスのレポートのヘッダー...
-
Accessのレポート上のテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
Accessのクエリで1フィールドの...
-
Access2007でSQLの複数列副問い...
-
Accessのクエリーのゼロデータ...
-
アクセスのフィルタ nullにつ...
-
access2019 チェックボックスと...
-
Access クエリで連結する文字...
-
Accessのデータの一部を削除す...
-
accessで空白の時の抽出
-
AccessからExcelへの条件付エク...
-
アクセスで任意の件数を抽出す...
-
access(アクセス):パラメータ...
-
Access Left$関数で全角半角が...
-
Access:固定長文字列ファイル...
-
ACCESS クエリ 抽出条件が多い場合
-
【Access】先月のデータを抽出...
-
アクセス チェックボックスとク...
-
ACCESSでのフィールド比較方法?
-
Accessの演算フィールド...
-
Accessクエリ特定文字列のカウ...
おすすめ情報