• ベストアンサー

AccessのIIF関数

Access2000のクエリで、 抽出:IIf(Left([品番],1)=2,Left([品番],4),Left([品番],7))という関数をフィールドに設定しました。 品番 2006aa123は、2006 h2006aa123は、h2006aa と各レコードに入るはずですが、2006aa123はちゃんと2006と入りますが、h2006aa123は、#ERRORになってしまいます。 なぜでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

文字(列)のhと数値型の2を比較するから ="2"にしてみてください

a-minpurun
質問者

お礼

ありがとうございました!その辺もやってみたつもりだったのですが、 今やってみたら出来ましたf^^; 迅速にお答えいただけて大変助かりました、ありがとうございました!!

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

=2だと数値なので型でエラーになるのでは無いでしょうか? 抽出: IIf(Left([品番],1)="2",Left([品番],4),Left([品番],7)) で出ましたよ。

関連するQ&A

  • Accessでのiif関数について

    はじめまして。 Microsoft Accessの関数についての質問です。 例えばクエリの「商品名」の値AをBに置き換えたい場合、 =iif([商品名]=A,B)とします。 また、商品番号1000~9999まであるとして、1000~1999を抽出したい場合は、Like "1*" もしくは、Between 1000 And 1999 とします。 この時に 商品番号1000~1999を一律1000と置き換えたい場合、クエリでやるとしたらどのようにすれば良いのでしょうか。 イメージ的には =iif([商品番号]="1*",1000)なのですが、「"1*"」の部分をどうやってもうまくいきません。 どなたか詳しい方いらっしゃいましたらお教え頂けないでしょうか。 お忙しいところ申し訳ございませんが、宜しくお願い致します。

  • IF関数ではなくIIF関数を使うのでしょうか?

    なぜアクセスのクエリでIF関数を使う時は エクセルのようにIF関数ではなくIIF関数を使うのでしょうか? アクセスのクエリで条件分岐をしたいときはIIFを使っています。

  • クエリの一つのフィールドのIIF関数の限界は14個ですか?

    アクセス2003のクエリで たくさんの条件があり IIf(テーブル名!フィールド名,"正",IIf(・・・ と言う風に、IIF関数を14個までなら正常に動くのですが 15目になると「式が複雑すぎます」となってしまいます。 IIF関数の限界は14個なのでしょうか?

  • クエリの抽出条件でiif関数

    こんにちわ。 いまaccess2000でクエリを作成し, その抽出条件において,iif関数を使って, フォームのあるフィールドに値があるときはその値, ないときはワイルドカードで検索しようと思い, 下記のコーディングを入れました。 iif([Forms]![F_フォーム1].[テキスト1] Is Null, "*", [Forms]![F_フォーム1].[テキスト1]) ところがワイルドカードの"*"がうまく効いてくれないようで 正しく検索されません。 どうすれば正しく検索できるでしょうか? 教えてください。お願いします。

  • ACCESS IIF関数 複数条件の設定について

     選択クエリにおいて、あるフィールド「 X」 のレコード数値が     0<[X]<=50   であれば A    50<[X]<=100  であれば B    100<[X]<=150  であれば C  と表記させるフィールド「Y」を追加したいと考えています。  この場合、Yのフィールド設定で指定する数式についてご教授願います。  一応、   IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")   としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。  何卒よろしくお願いいたします。

  • アクセスのクエリの組み方を教えてください

    アクセスで、クエリを組みたいのですがうまくできません。 添付画像をご覧ください。 テーブル1の中の「仕入コード1」フィールドと「仕入コード2」フィールドと 仕入コードマスタの「仕入コード」フィールドとの掛け合わせを行いたいです。 その結果、 (1)「仕入コード1」フィールドに存在して、「仕入コード」フィールドに存在しない、 (2)「仕入コード2」フィールドに存在して、「仕入コード」フィールドに存在しない レコードを一度に抽出したいです。 今回の場合であれば、品番222(含むAB)と品番333(含むAD)の2レコードを抽出したいです。 クエリを組みましたが、うまくそのようにできませんでした。 クエリのどこがおかしいのか?ご指摘頂けませんでしょうか。よろしくお願いいたします。

  • IIF関数

    アクセスでIIF関数を使うやり方を教えてください。 たとえば、担当者というフィールドがあった場合。 鈴木 一郎 吉田 次郎 藤田 三郎 水戸 直販 東京 直販 担当者の苗字だけと、直販と入っているものに関しては、 直販と表示する事はできますか? 鈴木 吉田 藤田 直販 直販   ・・・という感じにしたいのです。 名前に関してはLeftから二文字。 直販と言葉があるものに関しては、全て直販と表示する事は できますでしょうか? 宜しくお願い致します。

  • Access レポートでiif関数で文字列検索

    Accessのレポートで、iif関数である文字列を検索して、それがあれば非連結テキストボックスに「ありました!」とメッセージを入れたいのですが、できますでしょうか? レポートの内容は、商品リストで下記のようなフィールドからなっています。 個数 商品名 ------------------------------- 2 ミカンAA 3 ミカンAB 1 リンゴAB 2 リンゴAB ------------------------------- たとえば、商品名に文字列「AA」が含まれる商品個数の総合計を求めるときは、下記でできました。 非連結のテキストボックスのプロパティ = Sum(IIF([商品名] Like "*AA*",[数量],0)) しかし、下記のようにメッセージを入れたいのですが、文字列「AA」が含まれていても何も入りません。 = (IIF([商品名] Like "*AA*","ありました!",0) どこが悪いのかどなたか助けてください。

  • Access2000 でのIIFを使用したデータ更新処理

    こんにちは。答えていただけるとありがたいです。。。 Access2000 でのIIFを使用したデータ更新処理ができなくて困っています。 クエリで、退職者(テキスト形式)フィールドに 入力フォーム(チェックボックス)で入力した値(-1、0)を、 "-1"なら"退職"、"0"なら""空と更新したいのですが、 選択クエリで中身を見てみると、すべてのレコードが"0"と入ってしまいます。 書いている式は 式1: IIf([退職者]="-1",[退職者]="退職",[退職者]="") です。 以上、よろしくおねがいします。

  • アクセス チェックボックスとクエリ

    いつもお世話になっております。アクセス初心者です。 あるフォームのチェックボックスのオンオフとコンボボックス、 クエリの選択条件が思うように連携できなくて困っています。 やりたいことは、、、フォームのチェックボックスが、 ON(True)ならば、 フィールドにコンボボックスのキーワードを含むレコードおよびフィールドが空白のレコードを抽出し、 OFF(False)ならば、 フィールドにコンボボックスのキーワードを含むレコードのみでフィールドが空白のレコードは抽出しない、 としたいのですが…。 IIfやSwitchで式を書きましたが、チェックを入れても外しても、どちらも抽出件数が0件になります。 クエリの実行は、コマンドボタンで別のフォームを開いています。 (IIfでは、エラーが出ているのか、チェックを入れた時『~キャンセルされました』と出ます。  IIf(…,…,IIf(…,…,…)) という感じで書きました。) Switchの時のクエリの抽出条件の式は、次のような感じです。 Switch([Form]![チェックボックス]=True,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*" Or Is Null,[Form]![チェックボックス]=False,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*") ( Like の前の『([テーブル名].[フィールド名])』は、式をビルドすると、勝手に追加されてきます。) このようなことはできないのでしょうか? 別の方法が必要でしょうか? すみませんが、教えてください。宜しくお願い致します。

専門家に質問してみよう