Microsoft Access 掲示板

更新クエリでエラー / 8

12 コメント
views
8
sk 2025/07/16 (水) 09:24:20 修正 88328@64ac3 >> 6

確かに "-" が見つからなかった場合の扱いは設定されておらず、結果演算フィールドは空のままです。

演算フィールド[発注番号]が Null を返している場合については問題ないはずです。

IIf(Left([機種],1)<>"○",IIf(Left([注文番号],1)="B",Mid([注文番号],2,InStr(12,[注文番号],"-",0)-2),Left([注文番号],InStr(11,[注文番号],"-",0)-1)),[注文番号])

hiroton さんと私が指摘しているのは、[発注番号]が以下のような結果を返しているレコードが
[Q_手配内訳2]に 1 件以上含まれていないか、ということです。

画像1

  • [機種]の値が "○" でも Null でもなく、かつ次に示すいずれかの条件に該当する。
  1. [注文番号]の値が Null である(結果、Left 関数の第 2 引数に Null が渡されてエラーが発生する)。

  2. [注文番号]の値の最初の 1 文字が "B" ではなく、かつ 11 文字目以降に "-" が含まれていない(結果、Left 関数の第 2 引数に -1 が渡されてエラーが発生する)。

  3. [注文番号]の値の最初の 1 文字が "B" であり、かつ 12 文字目以降に "-" が含まれていない(結果、Mid 関数の第 3 引数に -2 が渡されてエラーが発生する)。

上記のケースに該当する場合に、エラー値が返されないように[発注番号]の式を組み直すか、[注文番号]の値を適切なものに書き換えるか、もしくは該当するレコード自体が[Q_手配内訳2]の結果に含まれないようになされば、[Q_手配内訳2]と[T_指定日インポート]を[発注番号]同士で結合できるようになるでしょう。

通報 ...