私は Access で作業しており、レコードがフォームの日付ウィンドウ内で作成または注文されたかどうかに応じて、特定のレコードをフラグで指定する必要があります。これの式に問題があります (これを行うためにデザイン ビューを使用しています)。これは次のように始まりました。
Designation:
IIf([InvoiceList.PurchaseOrderDt] Between [Forms]![Date Range]![StartDate]
And [Forms]![Date Range]![EndDate],
"New Backlog",
IIf(([InvoiceList.PurchaseOrderDate] < [Forms]![Date Range]![StartDate])
AND (([InvoiceList.FinalBillDate] Is Null)
OR ([InvoiceList.FinalBillDate] > [Forms]![Date Range]![StartDate])),
“Old Backlog”,
””)
)
構文エラー (「入力した式の構文が無効です。演算子なしでオペランドを入力した可能性があります」)が発生Backlog"
し、2 番目のステートメントで強調表示されています。私はアクセスと SQL に少し慣れていないので、IIF ステートメントをさらにネストし、AND 演算子と OR 演算子を取り除くことにしました。Access/SQL での処理方法がよくわからなかったからです。それが次のようになりました。
Designation:
IIf([InvoiceList.PurchaseOrderDt] Between [Forms]![Date Range]![StartDate]
And [Forms]![Date Range]![EndDate],
"New Backlog",
IIf([InvoiceList.PurchaseOrderDt] < [Forms]![Date Range]![StartDate],
IIf([InvoiceList.FinalBillDate] Is Null,
“Old Backlog”,
IIf( [InvoiceList.FinalBillDate] > [Forms]![Date Range]![StartDate],
“Old Backlog”,
””)
)
,””)
)
しかし、私は同じエラーがあります。2 番目のコードから考えられる洞察は、2 番目ではなく、最初の「古いバックログ」Backlog"
がまだ強調表示されていることでした。これは、「Is Null」の使用に問題があるのではないかと思いますが、その式を にIsNull([InvoiceList.FinalBillDate])
変更しても問題は変わりませんでした。
コードの強調表示された部分を削除するとエラーが解消されたことも注目に値しますが、この 2 番目の指定が必要です。
"
私の最終的な考えは、それが私が使用しているものと関係があるということです。ご意見をお待ちしております。
また、読みやすいようにコードをフォーマットしようとしました。