• ベストアンサー

accessで対象データの抽出を行うクエリを作成しています。データ範囲

accessで対象データの抽出を行うクエリを作成しています。データ範囲 0~1000 等で抽出したいのですが、元のデータは、 01 、 854、 0854 、0001 等、まちまちであり、 between 0 and 1000で指定すると、01 や 854 が抽出されません。 どのようにしたらよいでしょうか?  あるいは元のデータの桁を4桁にあわせればよいと思うのですが、どのようにして4桁に合わせればよいのでしょうか?  よい方法を教えていただきたいです。

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

  • ベストアンサー
  • szk9998
  • ベストアンサー率45% (1024/2232)
回答No.1

根本的なことを言いますが、データ型はどうなっていますか? たぶん、テキスト型になっているのではないですか? データ型が数値型になっていれば、0001や01が共存するわけが ありませんよね。(同じ”1”ですから) Betweenを使用するには、数値型である必要があります

piyopiyo-chan
質問者

お礼

ありがとうございました。 数値にするために、 いったんexcelで型桁を変更してから対処することにしました。

その他の回答 (1)

noname#182251
noname#182251
回答No.2

テキストを数値に直してから抽出しては? SELECT Int([StrNum]) AS c FROM テーブル WHERE (((Int([StrNum])) Between 0 And 1000)); 余り良いSQL文とは思わないけれど、上記でも抽出できます。

piyopiyo-chan
質問者

お礼

ありがとうございました。 数値にするために、 いったんexcelで型桁を変更してから対処することにしました。

関連するQ&A

  • ACCESS クエリにて日付で抽出する方法

    宜しくお願い致します。 アクセスにて出荷管理票を作っています。 その過程で下記のクエリを作成しました。 [商品名][出荷先][出荷日][個数] 上記のクエリで[出荷日]に抽出条件を指定したいのです。 抽出条件は【1月分または7月分】です。 Between … And …を使うと Between #2009/01/01# And #2009/01/31# または Between #2009/07/01# And #2009/07/31# となるのですが、2009年というのは指定したくないのです。 2007年でも2008年でもまた2010年でも抽出したいのですが、何か方法はないでしょうか?

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

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

  • Accessで複数のクエリの抽出条件

    Accessで複数のクエリの抽出条件にBetween[開始日]And[終了日]と入れて、マクロでその複数のクエリを次々に開いていくというものが入っているのですが、クエリが10以上あるので、[2005/01/01][2005/01/31]とを10セット以上入力しないとデーターが出てこない状態です。これを一度の期間指定入力で10個以上のクエリに同じ期間が自動で入るような方法を知りたいのです。 なにぶん、Accessが初心者で全くわからない状態ですので説明自体の意味がわからないかもしれません。よろしくお願いします。

  • パラメータークエリの抽出ができません

    アクセスで、抽出条件に「>=[いつから] And <=[いつまで]」と日付の範囲指定をしてデータを抽出するクエリを作りましたが、表示されるパラメータに日付を入力して実行してもすべてのデータが表示されてしまいます。 どうしてでしょうか?

  • Access2000:クエリに値(抽出条件値)を返す

    クエリに抽出条件として、 Between [いつから?(例:200504)] And [いつまで?(例:200504)] と指定してあります。 マクロに登録されたクエリを実行すると必要パラメータとしてダイアログがたちあがるものです。 これを自動的にVBAで日付を算出し、上記クエリに値を返すことをしたいのですが記述方法がわかりません。 VBAで作成した関数の戻り値を上記クエリの抽出条件の欄に返す方法はありますか? よろしくお願いいたします。

  • access 文字列で範囲指定する

    Access2010クエリの抽出条件で、 文字列を使った範囲指定は可能でしょうか? ★特定の年月(6桁・yyyymm)の過去12カ月のデータを抽出したい。※指定された年月が201308なら、201207までを取ってくる。 しかし、フィールド型がテキスト型である為、betweenを使えず困っております。 また、できればフィールド型を日付型等に変更せずに済ませたいです。 いろいろと面倒な条件を並べて申し訳ございません。 どうかご教授いただけないでしょうか。 よろしくお願いします。

  • アクセスで複数のクエリを使ったデータ抽出

    一つのテーブルがあり、そこから削除したいレコードを複数の条件でそれぞれクエリを作成します。3つクエリができたとして、 元データ-(クエリ1)-(クエリ2)-(クエリ3)=抽出データ としたいのですが、これを一度のアクションで行うことはできるでしょうか?

  • アクセスの抽出クエリについて

    従業員の労務管理をアクセスで行っています。 個人個人が社員コードを入力して自分の勤怠を処理しますが、1人だけ不具合がおきています。 このような抽出クエリで特定のデータに限って抽出しない場合、どんな原因が考えられるのでしょうか。対応策をご存知の方ヘルプミーです!! テーブル テキスト型でコード番号を登録 クエリ  コード番号を指定して抽出 コード番号は0001~1000といった四桁のコードを使用 『0029』コードのみ抽出が不可能 (1) 登録してあるデータのコードを直接コピーして抽出条件に貼り付けると『"0029』と頭側一方のみ『"』が付き抽出することができる。 (2) 次ににキーボードから『0029』と入力すると『"0029"』となり、抽出できない。 (3) キーボードから『"0029』と入力すると抽出できない。 なぜか??        

  • access2003 クエリでの抽出

    access2003のクエリで、先頭10レコードだけを抽出するなどという指定は 可能なのでしょうか。 それとも単純なクエリの指定だけではできないのでしょうか。

  • Access クエリのデータ型について

    AccessでPablic変数を日付範囲指定、クエリの抽出条件に指定したのですが、「抽出条件でデータ型が一致しません。」とのエラーメッセージで抽出出来ません。 【処理フロー】 1.フォームで、開始日と終了日をPublic変数へ格納 2.データ抽出クエリの日付条件に"GetData()"Public Functin VBAで変数を格納した値をクエリの抽出条件に返す。 《変数》 '開始日の宣言 Public sDate As Date '終了日の宣言 Public eDate As Date 《GetData()》 Public Function GetDate() MsgBox "開始日は、" & sDate & vbCrLf & "終了日は、" & eDate GetDate = ">=#" & sDate & "# And <=#" & eDate & "#" MsgBox ("Where文は、" & GetDate) End Function デバッグの為、"GetDate()"の戻り値を、メッセージボックスで表示してますが、戻り値は正常とおもわれますが、「抽出条件でデータ型が一致しません。」でクエリが実行できません。 ここを参考に、上記仕様にしました。 http://www.tsware.jp/tips/tips_369.htm どうすれば、日付範囲をPablic変数から指定出来るか、お教え頂けましたら幸いです。 ちなみに、Pablic変数にしているのは、他のクエリでもこの日付範囲を使いたい為です。 もし、ほかに良い処理方法が有れば、ご教授ください。