0

私は 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 番目の指定が必要です。

"私の最終的な考えは、それが私が使用しているものと関係があるということです。ご意見をお待ちしております。

また、読みやすいようにコードをフォーマットしようとしました。

4

1 に答える 1

0

二重引用符がおかしいように見えます。アクセスはそこが特徴です。「Old Backlog」を削除し、再入力してください。

于 2013-07-11T19:24:56.177 に答える