2

VBA で削除クエリを実行して、事前計算された現在の月よりも長い請求月を含むレコードを削除したいと考えています。別のシステムからのソース データには、(YYYY/MM) として示されるテキスト形式の日付があります。

声明は次のとおりです。

mySQL = "DELETE * FROM [tblBillingData]" _
& "WHERE (((tblBillingData.[Billing Month]) > PreCalcCurrentMonth));"

DoCmd.RunSQL mySQL

すべての変数は適切に宣言されており、コードをステップ実行すると PreCalcCurrentMonth を確認できますが、SQL ステートメントを実行すると、PreCalcCurrentMonth 変数の [パラメーターを入力] 入力ボックスが表示されます。

4

2 に答える 2

1

DatePreCalcCurrentMonth変数の場合は、次のようにしてみてください。

mySQL = "DELETE * FROM [tblBillingData]" & _
   "WHERE (((tblBillingData.[Billing Month]) > " & _
    Format(PreCalcCurrentMonth,"\#mm\/dd\/yyyy\#") & _
    "));"

 DoCmd.RunSQL mySQL

Format(PreCalcCurrentMonth,"\#mm\/dd\/yyyy\#")地域の設定に関係なく、日付が米国の日付形式 #mm/dd/yyyy# の文字列に変換されるようにします。# は日付区切り記号です。

于 2013-02-19T20:31:27.163 に答える
1

これを試して:

mySQL = "DELETE * FROM [tblBillingData]" _
& "WHERE (((tblBillingData.[Billing Month]) > #" & PreCalcCurrentMonth & "#));"

まず、変数を文字列外の変数として参照する必要があります。そうしないと、Access VBA は文字列と見なします。

#次に、日付パラメーターを記号で囲む必要があります。

于 2013-02-19T20:31:58.023 に答える