QNo.3555150の関連ですが、質問があります。
下記のフィールドは全て日付です。
前回は最新日を最終対応日に移行する質問でしたが、以下の
場合はどのように記述したらよいでしょうか?
対応日(1) 対応日(2) 対応日3 対応日(4) 最終対応日
未入力 未入力 未入力 未入力 5日
5日 4日 未入力 未入力 4日
5日 4日 3日 未入力 3日
5日 4日 3日 2日 2日
普通ならば対応日(1)→対応日(4)になるにつれて、新しい日付を
入力させるのですが、このような困った入力データに対応するため、
あえて、日付の新旧にこだわらず、(1)<(2)<(3)<(4)という優先順位で
最終対応日に日付をシフトしたいのです。最終対応日のみに日付が入ってるレコードについては、そのままにしたいです。
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
式の組み立て方の考え方は正しいです。
ただ、IIF(式A, 出力B, 出力C)
という形を変えてはいけません(括弧の位置と数)。
入れ子構造にするには、
IIF(式A1, 出力B1, IIF(式A2, 出力B2, 出力C2))
となります。(始めの IIF の括弧の数が多いようです。おしいですね!!)
>尚、1行目の最終対応日の日付は既入力データです。
とうことであれば、式は、
IIF([最終対応日]>0, ~
から始めることになります。
irija_bariさん。
miffyです。(朝早くからの御回答有難うございます)
作り直して以下のように記述しました。
SELECT IIF([最終対応日]>0,[最終対応日],IIF([対応日(4)]>0,[対応日(4)],IIF([対応日(3)]>0,[対応日(3)],IIF([対応日(2)]>0,[対応日(2)],IIF([対応日(1)]>0,[対応日(1)],[0]))))) AS 最終対応日
FROM 対応日;
今度は保存してもエラーは出なくなりました。
しかしながら、実行すると”SELECTで指定されてる別名'最終対応日'が循環参照を発生させています”と出ます。
これはどういうことなのでしょうか?
No.3
- 回答日時:
>しかしながら、実行すると”SELECTで指定されてる別名'最終対応日'が循環参照を発生させています”と出ます。
[最終対応日] を [対応日].[最終対応日] と書き換えてみてください。
(余計なお世話かもしれませんが、エラー対処などでわからないことが
あったら Web などで調べる習慣を付けると良いですよ。
今回なら、「access, 循環参照を発生させています」などのキーワードで
検索します。)
また、
> IIF([対応日(1)]>0,[対応日(1)],[0])
の最後の [0] は数値なので 0 と書くべきです。これだと、「すべて未入力
なら、0 という値にしなさい」という式になるのですが、それでよろしいの
でしょうか?
irija_bariさん。
書き換えたら今度はうまくいきました。
・対応日(1)~対応日(4)が全て未入力→最終対応日は0
・対応日(1)~対応日(4)が全て未入力、かつ最終対応日が既入力
→最終対応日はそのまま
最終対応日に既データがあるレコードには、ちゃんとデータが入ってました。
(^人^)感謝っっ♪
No.1
- 回答日時:
QNo.3555150 を拝見しました。
今回は VBA を使わなくてもできるので、クエリを使用します。
1. クエリを作成して、「SQL ビュー」を開きます(「デザイン ビュー」で
開いて、タイトル バーを右クリック「SQL ビュー」)。
2. SQL 文を入力します。(テーブル名は「テーブル1」だとします。)
SELECT IIF([対応日(4)]>0,[対応日(4)],[対応日(3)]) AS 最終対応日 FROM テーブル1;
対応日(4)が 0(=未入力)でなければ対応日(4)を出力、0 ならば
対応日(3)を出力するという意味です。
IIF を入れ子構造にする(今回なら、対応日(3)のところにさらに IIF を
入れていく)ことで、ご要望のものができると思います。
1 行目の
未入力 未入力 未入力 未入力 5日
は、どこから最終対応日を持ってきたのでしょうか?
5日 未入力 未入力 未入力 5日
の誤りと判断しました。
irija_bariさん。
miffyです。お返事有難うございます。
関数の不得手でよく理解できてないのですが、入れ子構造で以下のようにSQL文を記述したところ、構文エラー”演算子がありません”と表示されました。基本的に分かっていないもので恐縮ですが、どこがおかしいのでしょうか?
SELECT IIF((([対応日(4)]>0,[対応日(4)],IIF([対応日(3)]>0,[対応日(3)],IIF([対応日(2)]>0,[対応日(2)],IIF([対応日(1)]>0,[対応日(1)],[最終対応日]))) AS 最終対応日 FROM 対応日;
尚、1行目の最終対応日の日付は既入力データです。
説明不足で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Excel(エクセル) Excel関数で日またぎの勤務時間にしるしを立てる 2 2022/04/20 17:22
- Excel(エクセル) Excel2019のデータ入力に便利な関数について 4 2023/07/06 05:42
- その他(メールソフト・メールサービス) サンダーバードメールにて数万件の受信メール対応方法 2 2023/01/27 13:38
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- ふるさと納税 ふるさと納税ワンストップ特例制度が適用されなかった 7 2022/05/04 23:39
- 風邪・熱 2023 年5月8日以降の診療報酬の特例について 1 2023/06/23 13:40
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- 据え置き型ゲーム機 PSP1000と2000ではかなり違うのでしょうか?? 2000と3000はほぼ同じって事でしょうか 1 2022/03/26 06:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
passwordが入れられません・・・・
-
データベースのINT型項目にNULL...
-
アクセスで数値型のフィールド...
-
Excelで入力したデータを自動的...
-
フォームで入力しても反映されない
-
Access(office)のマクロの「値...
-
このオブジェクトに値を代入す...
-
OUTLOOK予定表の表示項目追加は...
-
ファイルメーカー 一ヵ月後の...
-
Accessで所要時間の足し算
-
ユーザーフォームで数字にカン...
-
テキストボックスの文字数設定
-
Access2000VBAでEscキーを禁止!
-
ACCESS 時間の入力方法
-
Accessで小数の入力について
-
Access2007、フォームのテキス...
-
コンボボックスの自動更新について
-
ACCESS 商品リストを全て表示し...
-
入力したはずの文章の復活って...
-
Accessで和暦でも西暦でも入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
フォームで入力しても反映されない
-
Excelで入力したデータを自動的...
-
日付のテキストボックスに(例...
-
アクセスのテキストボックスの...
-
エクセル 自動入力
-
このオブジェクトに値を代入す...
-
ユーザーフォームで数字にカン...
-
Access(office)のマクロの「値...
-
ACCESS 時間の入力方法
-
Access2007 textboxに入力でき...
-
Accessのパラメータクエリに入...
-
sqlldrの使用方法について
-
アクセス コンボボックスのリ...
-
EXCELのユーザーフォームで入力...
-
入力規則違反-任意のエラーメ...
-
Access2007、フォームのテキス...
-
Accessのふりがな自動入力
おすすめ情報