- ベストアンサー
【Access2000】抽出条件の設定について
Access2000の抽出条件について質問です。 下記のようなテーブルがあります。 番号が3桁、5桁のものが混在しています。 ※3桁、5桁以外のものはありません。 キー | 番号 | 名前 001 | 11029 | りんご 002 | 332 | みかん 003 | 10154 | ばなな 番号を加工する条件として、 A. 5桁の場合、頭から2桁目から3桁の値を取る B. 3桁の場合は、そのまま値を取る があります。 フィールドの記述は A. 番号加工後: Mid(Left([番号],2) ,3) というところまでは分かりました。 上記の条件をもとにクエリで実行したいのですが、抽出条件はどのように書けばよろしいでしょうか? 識者の方、ご教示いただけますと幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
番号は テキストですかね? 式1: IIf(Len([テーブル1]![番号])>3,Mid([テーブル1]![番号],2,3),[テーブル1]![番号]) この結果は 102 332 015です 番号の長さが3文字以上であれば、2桁目から3文字 そうでなければ 番号全てとしています。 クエリの項目に書きます
その他の回答 (1)
mid([番号],(len([番号])-1)/2,3) とすれば 5桁の場合は2番目から3文字 3桁の場合は1番目から3文字 抽出すると思います。 4桁の場合は2番目から3文字取ってくるようですので、おっしゃっておられる以外のパターンがある場合は更なる工夫が必要です。 いろいろな複雑なパターンがある場合はモジュールにファンクションを作ってしまうのが簡単だと思いますが、VBAの知識が必要になります。
お礼
ご返答ありがとうございます。 ご教示いただいた式で、希望の結果が得られました。 条件式を拝見すると、なるほど納得の記述ですね。 目から鱗が落ちました。
お礼
ご返答ありがとうございます。 番号はテキストになります。 ご教示いただいた式をクエリの項目で実行したところ、所望の値が取れました。 条件式をフィールドに記述できることを、恥ずかしながら初めて知りました。 勉強になりました。