• ベストアンサー

抽出条件の表現方法(アクセス2000)

クエリの抽出条件でLIKE "*" と >"12345"を切替て使いたいのですが、どう表現して良いか IIF(DS = 1, "< " & dt(), "Like " & "'*'") のようにしたのですが、通用しません。 わかる方、ご教示下さい。

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

  • ベストアンサー
  • t2hayashi
  • ベストアンサー率46% (102/219)
回答No.4

クエリのデザイン(フィールド名など)が基本的に同じであれば 同じフォームから切り替えて使えます。 フォームのレコードソースをフォームを開くときに設定してあげればOKです。 Private Sub Form_Open(Cancel As Integer) If DS = 1 then Me.RecordSource = "SELECT * FROM クエリ1" Else Me.RecordSource = "SELECT * FROM クエリ2" End If End Sub と言った感じです。 そもそもここまでくればクエリでなくレコードソースを SQL文にしてしまえばいいかもしれません。 たとえば Private Sub Form_Open(Cancel As Integer) Dim Str as String Str="" If DS = 1 then Str = "抽出したいフィールド名 ='" & dt() & "'" Else Str = "抽出したいフィールド名 LIKE '" & * & "'" End If Me.RecordSource = "SELECT * FROM テーブル名 Where " & Str End Sub みたいなかんじ。 ちょっと難しいですか?

tach_ei
質問者

お礼

クエリの抽出条件定義にこだわらない方がいいですね。この方法で実現できそうです。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • t2hayashi
  • ベストアンサー率46% (102/219)
回答No.5

すいません間違えました >Str = "抽出したいフィールド名 LIKE '" & * & "'" Str = "抽出したいフィールド名 LIKE '*'" ですね。しかしながらLIKE * であればWhere条件を設定するまでもない?!

全文を見る
すると、全ての回答が全文表示されます。
  • t2hayashi
  • ベストアンサー率46% (102/219)
回答No.3

DSはなんでしょう? ユーザー定義関数? レコードごとに抽出条件が違うっていうのは 意味がわからないので何かconstなどで固定されたパラメーターや フラグなんでしょうね。 であればいっそ抽出条件の違うクエリを二つ作って それを切り替えて使う方向で考えてはいかがでしょうか。

tach_ei
質問者

補足

DSはおっしゃるとおりです。今はコメントいただいたように2つのフォームを切り替えて使用しています。1つのフォームで実現するために1つのクエリで実現できないか調べています。やはりだめなんでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.2

tab1: ID_field_1_field_2 1________1_12345 2________1_123456 3________2_1111111 クエリ1: ID_field_1_field_2 3________2_1111111 2________1_123456 SELECT * FROM tab1 WHERE (Field_1=1 And Field_2>"12345") Or (Field_1<>1); 普通に Or を使うべきケースだと思います。

tach_ei
質問者

補足

DSはフィールドではないです。IIFではなく、関数でも記述方法があればそれでもいいのですが、・・・

全文を見る
すると、全ての回答が全文表示されます。
  • ttk11
  • ベストアンサー率25% (40/154)
回答No.1

抽出条件の行を2行、使用する たぶん DS はテーブルの項目に有るものだと 思うので IIF(DS = 1, "< " & dt(), "Like " & "'*'") の意味があまり詳しくは理解できませんが 以下の方法 DSのフィールド 対象のフィールド ↓ =1         >12345 <>1       LIKE("*") そもそも LIKE("*") なら 全件抽出となるので 2行目は指定不要かもしれませんが・・・

tach_ei
質問者

補足

回答ありがとうございます。しかし、DSはフィールドではありません。テーブルに関係ない条件です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • ACCESSのクエリー抽出条件にIIFを使用して

    コンボボックスの値を抽出条件にしたクエリーを作成しています。 コンボボックスにて"ALL"を選択したときに、全レコードを表示したく、 以下の式を入れたのですが全表示がされません。 IIf([Forms]![テーブル名]![コンボ値]="ALL",Like "*",[Forms]![テーブル名]![コンボ値]) Like "*" の部分がいけないのでしょうか? (偽の場合は選択した値のレコードが抽出されます) どなたか教えてください、よろしくお願いいたします。

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

  • Access2010クエリ抽出条件(Like)

    Access2010のクエリで、対象のテーブルの商品名を使って抽出条件に「Like "*PB*"」としました。すると「PA 配管カバーB」(すべて全角)の商品が抽出の対象となっていました、何故なのか理解できません。どなたかAccessに詳しい方、理由をご教示ください。

  • accessで複数条件でレコード抽出

    選択クエリにLike~で始まる条件1から条件6までを設定し、抽出フォームを作りましたが、全レコードの中から抽出されません。条件に該当するレコードが何件か抽出されないのです。どうすればいいでしょうか

  • accessで空白の時の抽出

    access2000を使っています。まだ初心者なので難しい事はできないのですが、クエリを使って絞り込み検索のフォームを作っています。 テーブル内のデータで空白のデータがあります。その際にクエリの抽出条件にlike iif(is null([forms]![formA]![テキスト100]),"*","*"&[forms]![formA]![テキスト100]&"*")としています。フォームのテキストが空白のときは全て抽出するという条件を満たす予定で設定したのですが、テーブル内のデータが空白の物が抽出できません。データが空白がない様にすればいいのでしょうが、クエリの条件で設定できないものでしょうか?データはテキスト型です。

  • アクセスのクエリでの抽出条件

    アクセスのクエリでの抽出条件で フィールド1とフィールド2とフィールド3 にデータがなければ1とフラグを立てるようにしたいのですが うまくいきません。 IIf([フィールド1]=Null and [フィールド2]=Null and [フィールド3]=Null,1,0) としてみたのですがうまくいきません。 ご指導お願い致します。

  • Accessの抽出条件

    お世話になります。 選択クエリの抽出条件の書き方がわかりません、どなかたお教えください。 質問:基本データ、の数値定義の、登録番号の、4225403~4246003の間の抽出条件で選択クエリの抽出条件セル内にどのように書けばよいでしょうか? ちなみに私は、&[Forms]![F_抽出条件]![抽出条件]のForms、F_抽出条件、抽出条件、!、[] 等の意味がまったくわからないレベルです。 そのままセルにコピペでOKの形で教えてください。

  • クエリの抽出条件

    現在、選択クエリ(Like[])を使いその都度抽出条件を入力しているのですが、条件をコンボボックス等から選択するクエリを作ることは可能ですか? 知っている方、方法を教えてください。

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。