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