• ベストアンサー

Access クエリについて

クエリについて質問です。  データ フィールド名が名前:        会社名・個人名が表示されています。 クエリのフィールドのところから、 「名前」に会社という言葉があったら、「1」、なければ 「2」と表示したいのですが上手くいきません。 会社コード1: IIf([名前]="*会社*","1","2") 全て2になってしまいます。 誰か教えてください。宜しくお願い致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

IIf(Nz(InStr([名前],"会社"))>0,"2","1") InStrが文字内検索の関数です。 [名前]に"会社"がない場合、0を返しますので判定できます。 [名前]がNullの場合のためにNz関数を使用しています。

shinoshino
質問者

お礼

早速の回答ありがとうございます。 出来ました^o^ ありがとうございました!

関連するQ&A

  • ACCESSのクエリ

    ACCESS初心者です。 部署計画のテーブルに部署コードしかないため、(例えば人事部は部署コードの10しか表示されません)クエリを作成して、部署名というテーブルから部署名を表示する様に作ってみました。 クエリの内容はたくさんあるので省略すると以下の様な感じです。 フィールド⇒ 計画年度  部署コード  部署コード  部署名  テーブル ⇒ 部署計画  部署計画   部署名    部署名 表示   ⇒  レ      レ    非表示     レ 単に部署名を単語で表したかっただけなのですが、クエリでは、7割くらいのデータしか表示されません。値要求も特にしていません。 全てのデータを表示させるには、どこを変更したらいいか教えて下さい。 よろしくお願いします。

  • ACCESSのクエリで表示されるデータについて

    クエリで表示されるデータの範囲について教えてください。 <状況例> 例えばなのですが、取引先会社の管理データベースとして「テーブルA」と「テーブルB」があったとします。 「テーブルA]のフィールドは「会社ID」、「会社名」、「住所」とします。 「テーブルB]のフィールドは「連絡先ID」、「会社ID」、「担当者名」とします。 そして、「会社ID」をリレーションシップで繋いで、クエリで「テーブルA」「テーブルB」の全てのフィールドを表示したとします。 この時、「テーブルA」にデータが5つあり、「テーブルB」にはデータが2つしかなく、結果リレーションシップを通じて対をなすデータが2つしかない場合には、クエリでは2つしかデータが表示されないと思います。 <質問> クエリではリレーションシップで対をなさないデータは無効となるようですが、対をなさないデータも全てクエリで表示する方法はないのでしょうか。 上記例でいうと、「テーブルA」のデータ5件全てについて表示させたいのですが。もちろん、「テーブルA」のデータ中対をなしていないものについては、「テーブルB」のフィールド内容については「空白」での表示となりますが。

  • ACCESS クエリで表示されているデータがテーブルで反映されない

    宜しくお願い致します。 ACCESSにおいてクエリで表示されているデータがテーブルで反映されないので困っています。 状況としてはあるフィールドに1が入力されるとその隣のフィールドにAが入力されて2が入力されるとBが入力され3,4,5・・・と続いていく感じでそれは“iif”を使って条件指定しています。 この場合クエリのデザインビューで見たときにテーブル名を指定することができないためにこのような状況になっているということはわかったのですが、テーブルにその条件で表示した物が反映されるためどのように記述をしたらいいのでしょうか・・・ ややこしい質問かもしれませんが、宜しくお願い致します。

  • アクセスのクエリでの抽出条件

    アクセスのクエリでの抽出条件で フィールド1とフィールド2とフィールド3 にデータがなければ1とフラグを立てるようにしたいのですが うまくいきません。 IIf([フィールド1]=Null and [フィールド2]=Null and [フィールド3]=Null,1,0) としてみたのですがうまくいきません。 ご指導お願い致します。

  • アクセス クエリでの関数について

    テーブルのフィールド1にテキスト形式で クダモノリンゴ クダモノオレンジ などが入っています。 クエリで 区別:IIF([フィールド1]="クダモノリンゴ",1,2) という感じで式を入れたのですが 結果はすべて2が表示されます。 別テーブルを作って フィールド1にクダモノリンゴなどの項目(頭に必ずクダモノが付きます) フィールド2に1や2などの種類別の値を入れてクエリでリレーションで関連づけても空白が返されます。 どこがおかしいのかまったくわからず困っています。アドバイスお願いします。

  • ACCESSクエリエラーの原因

    ACCESS2007を使用しています。 作成時はうまくいってたはずのクエリが最近きちんと動作しなくなり 原因を探してますが分からず皆様のお知恵をお借りしたいと思っています。 問題のクエリではクエリ実行時にある条件のフィールドに「#error」と出力されています。 (英語版のACCESSですので、もしかしたら日本語版だと少し違うかもしれません。) そのクエリフィールドの内容は、 IIf([weight]<>"",IIf([weight]<[SD3n],3,IIf([weight]<[SD2n],2,IIf([weight]<[SD2p],1,IIf([weight]<[SD3p],4,5)))),9) このクエリで参照しているのは1つのクエリで、その中に weight, SD3n, SD2n, SD2p, SD3p というフィールドがあります。 簡単に説明すると、各人の体重(weight)を元にその体重がどのレベル(太りすぎとか痩せ気味とか)にあるかを 1~5のグループに分けるというものです。 各人の年齢や性別によってSD3n, SD2n, SD2p, SD3pは違うものが入っています。 また、体重が入力されていないものは「9」を返します。 で、問題の「#error」が返されるのは、体重が入力されている全てで、体重が空白のレコードには きちんと「9」を返してくれます。 ちなみに、最初にIIF関数の条件部分を「is Null」に変えて、 IIf([weight] is Null,IIf([weight]<[SD3n],3,IIf([weight]<[SD2n],2,IIf([weight]<[SD2p],1,IIf([weight]<[SD3p],4,5)))),9) とした場合は、体重が入力されているレコードについて全て「5」が返されます。 本来はデータの内容的には全て「3」を返すはずです。 また、元のクエリのweight, SD3n, SD2n, SD2p, SD3pの参照元のテーブルでは 全てのフィールドについて数値型にしています。 最初、ダミーデータ等でテストをしていたときはうまくいっていたので、何かがおかしくなったのだと 思うのですが、よくわからず、もしも、アドバイス等ありましたら教えて下さい。

  • アクセスのクエリーで抽出方法

    以前(9/25)にもこのgooで質問しいろいろ指導を受けたのですがなかなか解決せず、時がたちなかなか回答が得られず、また同じ質問をします。 クエリーで抽出する方法なのですが、例えば a   b 山   50 川   30 のようなクエリーの表があります。フォームでテキストボックスに”山”と入力したら 山   50 と表示することはできますが”すべて”と入力したら 山   50 川   30 と表示したいのです。クエリーにはすべてという文言はありません。 クエリーの抽出条件でaのフィールドに=IIf(フォーム名![Text1],フォーム名![Text1],Is Not Null)と入力するもののうまくいきません。 アクセス超初心者です。なおアクセス97を使用しています。よろしくご指導ください。

  • Accessの不一致クエリについて

    Accessの初心者です。二つのテーブルの異なるフィールどを比較する方法について、教えてください。 例えば、"6523610"という数字が両方のテーブルにあるかどうか調べたいとします。 テーブルA 523(フィールド名:契約コード)+610(ID) テーブルB 6523(フィールド名:取引コード)+61(フィールド名:地域コード) と、それぞれ構成が違います。頭につく"6"と最後の"0"は共通の数字です。クエリで新たなフィールドを作って、"6523610"にするまではわかるのですが、どのフィールドを関連づけていいかわかりません。このような場合は、不一致クエリではできないのでしょうか? 仕事で、明日中にデータを調べなければいけないので困っています。 よろしくお願いします。

  • ACCESS パラメータクエリの設定

    ACCESSでデータの抽出をしています。 抽出をしたいキーワードが15個ほどあり、そのつどクエリを作るとかなり時間がかかります。データは(20万件ほどです) そこで本を見たところパラメータクエリというものがあり、早速試してみたのですができません。 テーブル名は”本”です。 フィールド1…番号  フィールド2…雑誌名 フィールド3…著者  フィールド4…JANコード になっています。 私はフィールド2のところで抽出条件として "[雑誌名を入力してください]" と入れました。 後もう一点ですが、同一雑誌でも名前が少し違って登録されているものもあり、重複するデータを抜き出して削除したいのですが、削除分と削除された残りのデータが共に必要です。こういった場合はどう処理するのが妥当でしょうか?削除分は別に保存した上で、不一致クエリを使えば正確にできますか?もっとよい方法がありますか? どうぞよろしくお願いいたします。

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

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

専門家に質問してみよう