0

問題と解決策の膨大な山を読みましたが、何が間違っているのかわかりません。

BounceDate = DateValue(txtBounceDate.Value)
bncSql = "DELETE _BounceMaster.* FROM _BounceMaster" & _
    " WHERE _BounceMaster.DateCheck >= #" & BounceDate & "#;"
DoCmd.RunSQL bncSql

_BounceMaster.DateCheck は日付/時刻形式であり、これが問題である可能性がありますが、どの形式にする必要があるか、またはそこに到達する方法がわかりません。私が知る限り、BounceDate は正しいです。CDate を使用しても違いはありませんでした。両方のデータ不一致エラーが発生しました。現在、上記のコードでは構文エラーが発生しています。私は何を間違っていますか?

4

2 に答える 2

1

問題は日付のフォーマットにあると思います。変数は DateTime 型であるため、BounceDate文字列型変数と連結すると、VBA は地域設定の日付形式を使用して、DateTime 変数を文字列型に自動的にキャストします。

私が正しく覚えているように、MS Access の SQL インタープリターは、mm/dd/yyyy の日付形式のみに慣れているので、これを試してください:

BounceDate = DateValue(txtBounceDate.Value)
bncSql = "DELETE _BounceMaster.* FROM _BounceMaster" & _
    " WHERE _BounceMaster.DateCheck >= #" & Format(BounceDate, "mm/dd/yyyy") & "#;"
DoCmd.RunSQL bncSql
于 2012-04-05T19:45:19.270 に答える
0

そのはず

DELETE FROM _BounceMaster

いいえ

DELETE _BounceMaster.* FROM _BounceMaster

コードが SQL インジェクション攻撃を受ける可能性があるため、パラメーター化されたクエリを使用する必要があります。

于 2012-04-04T18:03:48.653 に答える