• ベストアンサー

access2000のwhere条件なんですが・・・

今、テーブルAの中に「回数」というフィールドがあります。その値が一定条件以上のレコードだけを抽出したいのです。 抽出条件は、その都度変わってしまうので、kazu=Dcount("回数","テーブルA")-5 としています。 でも、VBAでSELECT~~WHERE[回数]>kazu といれても、kazuが値として読み込まれないみたいで、「パラメータの入力」画面が出てしまいます。 kazuを値として認識させるには、どうしたら良いのでしょうか・・・。

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

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.1

注意するのは、SQL文は文字列として記述するということです。 ("SELECT~"のように、"" で括りますよね。) ご質問のように "" の中に、kazu と記述すると、"kazu" という文字列として認識されてしまい、kazu の変数値としては認識されません。 で、具体的には、 "SELECT~~WHERE [回数]>" & CStr(kazu) kazu は数値型のデータですから、CStr関数で文字列型に変換してから、& で SQL文につなげています。

yukikocchi
質問者

お礼

できました!!!! ありがとうございました。 CStrっていうものがあるんですね。 助かりました。 これで、完成します。 本当にありがとうございました。

関連するQ&A

  • Access2003 複雑な条件のデータ抽出

    ☆1つのテーブルで、フィールド[A]~[C]があり、文字および英数字のデータが混在しています。 (ただし、フィールド[C]には、空欄(Null)になっている場合があります) =========================================================== (テーブル(1)) No  [A]      [B]    [C]     [D]      [E]      [F] 1   111      X    あ       2   222      X     か   3   333      X     さ  4   111      Y    た 5   222      Y   (Null)  6   333      Y     は 7   222      Z     ま   8   333      Z     や  9   111      Z    ら    =========================================================== [課題] (1) テーブル(1)のフィールド[A]の値を参照し、「111」の場合は、   フィールド[C]の値を[D]へ抽出する([B]でグループ化) (2) 同様に、フィールド[A]の値を参照し、「222」の場合は、   フィールド[C]の値を[E]へ抽出する([B]でグループ化) (3) 同様に、フィールド[A]の値を参照し、「333」の場合は、   フィールド[C]の値を[F]へ抽出する([B]でグループ化) (4) 新規クエリにて、上記課題(1)~(3)の条件を指定して実行すると    以下の抽出結果が表示される =========================================================== [抽出結果] (テーブル(2)) No  [B]    [D]    [E]      [F] 1   X     あ    か      さ     2   Y     た   (Null)    は   3   Z     ら    ま     や =========================================================== 別々のレコードにあるフィールド[C]の値を、条件に従い テーブル(2)のように1つのレコードにまとめたいのです。  大変恐縮ですが、私はSQLが書けないので、フィールド欄へ関数式を 入力して条件を指定しております。 できましたら、各フィールドへ入力する関数式を教えていただけると助かります。 また、関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

  • Access クエリ 抽出条件

    Access の クエリ における 抽出条件 の 書き方についてご質問させていただきます。 クエリには、左から『商品名』、『出荷数量』、『注文数量』の3列がございます。 各レコードの『出荷数量』フィールドの値と『注文数量』フィールドの値を比較し、 『注文数量』フィールドの値の方が大きいレコードだけを抽出したいのですが、どのように抽出条件を記載すればよろしいでしょうか? 元データは1つのテーブルに格納されています。 例:注文数量:500、出荷数量:200など出荷数量が少ないレコードを抽出対象 注文数量:100、出荷数量:100など注文数量=出荷数量レコードは抽出対象外

  • Access where条件式について

    Access where条件式について 最近マクロでwhere条件式による抽出を知った初心者です。 現在単ページ表示のフォームから、表示されているID番号のレポートを表示させたいと考えているのですが、そのレポートをレコードソースになるマスターテーブルから [Form]![ID]=[マスターテーブル]![ID] とすると該当するレポートが表示されるのですが、 レポートのレコードソースをクエリに変更 [Form]![ID]=[マスターテーブルクエリ]![ID] に変更するとすべて空で表示されてしまいます。 クエリを使用することは出来ないのでしょうか? データベースの基礎があやふやなこと、where条件を最近知ったことなどから、検討違いなことを質問していたら申し訳ありません。 また質問に対して、足りない情報があればご指摘願います。 OS Windows XP Access 2003

  • ACCESS 以下のようなレコードを抽出するSQL

    ACCESSのデータベースで あるフィールド(フィールドAとします)の値に対して、 別のフィールド(フィールドBとします)の値が1つに決まる データベースがあるとします。 例えば、フィールドAの値が1のレコードは、 どのレコードもフィールドBの値はaである。など このようなデータベースでこのような関係になっていないレコード 例えば、フィールドAの値が1のレコードの中に フィールドBの値がaであるレコードと フィールドBの値がbであるレコードがある。など を抽出するSQLはどのように記述すればよいでしょうか。 テーブル名はTABEL1とします。 次の2つのケースでお願いします。 (1)フィールドAの値が異なればフィールドBの値が異なる場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが ある時、フィールドAの値が1でないレコードの中には、   フィールドBの値がaであるレコードが存在しない場合   (2)フィールドAの値が異なるがフィールドBの値が同じこともある場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが あっても、フィールドAの値が1でないレコードの中にも、   フィールドBの値がaであるレコードが存在する場合 【回答例】(ただし、1,a,bなどの具体的な値は使わないこと) ・フィールドAの値が1のレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1; ・フィールドAの値が1でフィールドBの値がaのレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1 AND フィールドB='a'; ・フィールドAの値が1でフィールドBの値がaのレコードと  フィールドAの値が1でフィールドBの値がbのレコードを表示する例 SELECT * FROM TABLE1 WHERE (フィールドA=1 AND フィールドB='a') OR (フィールドA=1 AND フィールドB='b'); この目的は、データベースに問題があり、 問題となっているレコードを見つけて直したいのです。 よろしくお願いします。

  • SQLのWHERE句を条件によって追加したい

    SQLのWHERE句にパラメータで渡された値がnullでない場合は条件に 含めるようにしたいのですが、書き方が分かりません。 CASEを使って書いてもエラーになってしまいます。 SELECT 項目1 ,項目2 FROM テーブル WHERE 条件1 = パラメータ1 AND 条件2 = パラメータ2 -- パラメータ3がnullでない場合は下記条件を付けたい AND 条件3 = パラメータ3 使っているのはpostgresqlです。 よろしくお願いします。

  • Access Dcount で抽出条件複数の場合

    教えてください。Access2000です。 テーブルAでフィールド1の値が「1」でフィールド2の値が「Cを含む全て」としたいのですがどうしたら良いですか? テキストボックスのコントロールソースに記入します。 DCount("*","[テーブルA],"[テーブルA]![フィールド1]=1 and [テーブル1]![フィールド2]='*C*'") よろしくお願いします。

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • フォームを開くときのwhere条件式でnull値のものに絞りたい

    VBAの記述で、フォームを開くときにレコードの抽出条件を指定できますが、その際,指定したフィールドの値がNullのもの、逆にNullLでないものという条件の与え方はできないのでしょうか? 値がある文字列と等しいとかある数値や日付以上といった条件式はヘルプでみるのですが、NullかNullでないといった判断をさせる条件式が参考書等でもみあたらないのですが。  それとも何か違うやりかたがあるのでしょうか?ご存知のかたは教えてください。

  • MySQL 複合検索条件

    MySQLでひとつのテーブルの複数フィールドに値を設定してレコードを参照したい。 例えば、key-field-1 >= ??? と key-field-2 >= ???で key-field-1は主キーでkey-field-2は従属キーとし、key-field-1の条件に合うレコードで、次にkey-field-2の条件に合うレコードを見つけ、それ以降の全てのレコードを抽出したい。 select * from table-1 where key-field-1 >= ??? and key-field-2 >= ??? で検索すると 両方の条件を満たすレコードのみ検索される。 アドバイスを待っています。

専門家に質問してみよう