• ベストアンサー

ビルドでIF関数

keirikaの回答

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

Mid([支払内容],InStr([支払内容],"月")-1,1) ではどうでしょうか。

lkhjlkhjlk
質問者

お礼

大変参考になります!ご回答ありがとうございます。

関連するQ&A

  • ACCESEのビルドの使い方について

    フォームでテキストボックスを2つ作成して、 そのテキストに入力した条件を抽出させるようなことを やりたいのですが、クエリの抽出条件を入れられるところに ビルドで作成すると思いますが.. (テキストボックスごとにフィールドは違うのを見るようにしてます) データ抽出するクエリの作成方法(ビルド)で、 テキストボックスに入力されていない場合、 下記のような構文になると思います。 iif(isnull(forms!フォーム1!date1),,) iif(isnull(forms!フォーム1!date2),,) 上記の処理で、NULL(または入力なし)だった場合、 テキストボックスのクエリの該当フィールドに 作成した抽出条件を無視をするような処理をいれたいのですが、 テキストに入力して抽出してみると 何も抽出できなくて困ってます。 参考になるURLがあったら教えてください

  • アクセスでの、Iff関数について(初級者です)

    アクセスで、NOフィールドの頭文字2文字が、 THかTSの場合は、● そうじゃない場合は×と 表示させたいのですが、うまくいきません。 構造は下記の通りです。 AテーブルのNOフィールドに TH61200001、TS61200001、SH61200001、KS61200001 と言った値が入っていて、 それを選択クエリで、引っ張り、 分類フィールドを追加し、 分類: Left([NO],2)といった式を作り、 さらに、その横に新分類フィールドを追加し 新分類: IIf([分類]="TH" Or "TS","●","×") と作成したのですが、結果は、全て●になってしまいます。 THだけ、TSだけとすれば、ちゃんと表示されるので 分類まではちゃんと出来ているようです。 お手数ですが教えてください!!

  • Access InStr関数 AかBが入っていた場合、抽出したい

    Access2003です。 フィールドに「A-A」というデータがあります。 「-」より前のデータを抽出する方法として、 Left([フィールド],InStr([フィールド],"-")-1) というコードを使っていました。 ※「-」より前の文字数は1文字とは限らないので・・・。 しかし 「A-A」「A+1」のように、「-」または「+」より前のデータを抽出する というのは可能でしょうか? orを使って Left([フィールド],InStr([フィールド],"-"or"+")-1) と書き直しましたが、エラーになってしまいます(安易にコードを修正しすぎですが)。 どうやってコードをかけば良いのでしょうか?

  • アクセス テーブル作成クエリ

    アクセスです。 元のテーブルには「内容」と言うフィールドがあり、データ型をメモ型にしています。 値は255文字以上入れています。 そのテーブルを元にテーブル作成クエリで新規にテーブルを作成すると、 メモ型の内容フィールドは、テキスト型になり、全ての文字が入りません。 元がメモ型のフィールドでもテーブル作成クエリでテーブルを作成しても テキスト型にならないようにする方法はありますか?

  • ACCESS クエリでの抽出の方法について

    毎度お世話になっております。 ACCESS2003、SQLSERVER2000を使用しています。 以下のテーブルがあります。 テーブル1 フィールド1   フィールド2   A        10   A        20   A        -10   B         1   B         2   B         3 フィールド1をグループ化し、 フィールド2に0より小さい数がある場合はNG、 ない場合はOKと表示したいのです。 希望する結果 フィールド1   フィールド2   A         NG   B         OK 私が考えた方法は、 1.クエリ1(フィールド2が0以下のフィールド1を抽出する)を作成 2.テーブル1とクエリ1をLEFT JOINし、IS NULL ならOK、そうでないならNGを表示 としました。希望した結果は得られましたが、 もっとスマートな方法(一つのクエリでできるような方法)、 または別解をご教授ください。 よろしくお願いします。

  • アクセスのクエリに「PHONETIC」関数はないのですか?

    アクセス2003です。 テーブル1 名前 佐藤 鈴木 木村 を クエリ1にて 名前  ふりがな 佐藤   サトウ 鈴木   スズキ 木村   キムラ というようなフィールドを作成したいのですが クエリのデザインビューのビルドで見る限りだと 「PHONETIC」関数がありませんでした。 クエリではなくテーブルに手打ちするしかないのでしょうか? よろしくお願い致します。

  • ACCESSユニオンクエリでORDER BYエラー

    お世話になります。 クエリAとBがあり、それぞれのクエリでは製品コードの先頭6文字(製品コード先頭6文字: Left([マスター]![製品コード],6))の昇順で並び替えしてます。 個々のクエリでは問題なく並び替えされるのですが、この二つのクエリをユニオンクエリで結合するとエラーとなってしまいます。 『ORDER BY 式 (Left([マスター]![製品コード],6))にクエリに選択されていないフィールドが含まれています。ORDER BY 式 (Left([マスター]![製品コード],6))に含めることができるのは、最初のクエリで要求されたフィールドだけです。』 となります。 調べたところ、『ユニオン クエリで使用されるテーブルにおいて、1 つ以上のフィールド名を変更した場合に発生します。 』ということでした。 http://support.microsoft.com/kb/282322/ja 確かに、それぞれのクエリでフィールド名を変更しているのですが・・・このような場合、どのようにすればうまく結合できるのでしょうか。それとも不可能なのでしょうか。。 以上、よろしくお願い致します。

  • Access クエリのフィールドに他のクエリの複数条件を満たすレコードの項目を表示させる

    Accessに関する質問です。 クエリの中で、あるフィールドに、 他のクエリの特定の条件を満たすレコードの項目を表示させたいのですがどのような方法があるかお教えいただけますでしょうか? 具体的には下記のようなクエリを組みたいと考えています。 データ元とするクエリの構成: 【フィールド1】社員番号 【フィールド2】時間帯別業務内容 【フィールド3】業務割合 組みたいクエリの構成: 【フィールド1】社員番号:上記クエリの「社員番号」 【フィールド2】業務内容_Aの割合:上記クエリのレコードの中で、フィールド1の「社員番号」と上記クエリの「社員番号」が一致し、かつ「時間帯別業務内容」が"業務内容_A"であるレコードの「業務割合」 【フィールド3】業務内容_Bの割合:フィールド2と同様のロジック 【フィールド4】業務内容_Cの割合:フィールド2と同様のロジック ・・・ ビルドの欄でDlookupを使うのかと考えましたが上手くいきません。 初心者的質問で大変恐縮ではありますが、お教え頂けると助かります。 お手数をおかけしますが、以上よろしくお願いいたします。

  • エクセル 関数の数式が表示されてしまう

    WinXP エクセル2003です [シート集計表]のセルE1に ”平成19年9月分 一括集計表” と入力されています。 この ○月 を毎月キーボードで入力、変更させています。 隣に個人配布用の[シート明細票]があります。 [シート集計表]の○月を変更すると [シート明細票]のA1,D1,G1,・・・・が自動的に”平成19年○月分支払書”と表示されるようにと =LEFT('集計表'!$E$1,8)  を作成し セルの書式設定で ユーザー定義 ”@"支払書"”とし 思った通り表示させる事ができていました。 今月分を作成したところ ”平成19年10月支払書 ”と9文字目の 分 が抜けて表示されてしまったので A1に入っているLEFT関数の 8 を 9 に変更したところ セルに 数式自体が表示されてしまいました。↓ ”=LEFT('集計表'!$E$1,9)支払書 ” 数式バーのfxをクリックし 再度関数を作り直してみても 表示させたい文字列ではなく 数式自体が表示されてしまいます。 関数のダイアログボックスの [数式の結果] というところには ちゃんと ”平成19年10月分支払書” と出ているのですが、OKで閉じても そのように表示されません。 変更していない D1 G1・・・は以前のまま 数式の結果がきちんと出ています。 ツール~オプション~数式の表示のチェックは外れています。 [シート集計表]のセルE1の書式設定を標準にしてみたり文字列にしてみたりしても 変化なしでした。 原因と対策を教えて下さい!

  • 自作関数でIF文はできないのか?

    SELECT テーブル1.ID, IIf([テーブル1]![ID]=1,"1です","1ではない") AS 1かどうか FROM テーブル1; というクエリ1を作成しました。 「IIf([テーブル1]![ID]=1,"1です","1ではない")」の部分を vbaのFunctionプロシージャーで記述したいのですがうまくできないです。 標準モジュールに Public Function IF文() IF文 = "IIf([テーブル1]![ID]=1,""1です"",""1ではない"")" End Function を作成し、 クエリ1のSQL文を SELECT テーブル1.ID, IF文() AS 1かどうか FROM テーブル1; としたら 「1かどうか」フィールドには関数式の結果ではなく、 関数式が文字列として表示されました。 (添付参照) 訳あって、 SQL文の一部をvbaで記載したいのですが上記のようなことは不可能でしょうか? ご教授よろしくお願い致します。