私は現在MSAccessデータベースに取り組んでおり、日付の減算に問題があります。
基本的に、たとえば次のように目標日を作成しようとしています。
目標日=期限-リードタイム
つまり、リードタイムは30日になる可能性があるため、目標日は締め切りの30日前にする必要があります。
私が使用しようとしているコードは次のとおりです。
strSQL = "INSERT INTO dbo_DEALER_TASK ( Dlr_Number, Action_Id, Task_Id, Area_Id,
Task_Deadline_Date, Responsible_Person_Id, Alternate_Person_Id, Priority, Comment,
Suppress_Email, Dealer_Type ) "
strSQL = strSQL & "SELECT dbo_DEALER_ACTION.Dlr_Number, dbo_DEALER_ACTION.Action_Id,
qryAllTasksToAdd.Task_Id, qryAllTasksToAdd.Area_Id, Deadline_Date - Deadline_adjustment
AS 'Task_Deadline_Date', qryAllTasksToAdd.Person_Responsible_Id,
qryAllTasksToAdd.Alternate_Responsible_Id, qryAllTasksToAdd.Priority,
qryAllTasksToAdd.Comment, qryAllTasksToAdd.Suppress_Email,
qryAllTasksToAdd.Applies_To_Dealer_Type "
strSQL = strSQL & "FROM dbo_DEALER_ACTION LEFT JOIN qryAllTasksToAdd ON
(dbo_DEALER_ACTION.Dealer_Type = qryAllTasksToAdd.Applies_To_Dealer_Type) AND
(dbo_DEALER_ACTION.Action_Id = qryAllTasksToAdd.Action_Id) "
strSQL = strSQL & WHERE (((qryAllTasksToAdd.Task_Id)=" & Me.Task_Id & ") AND
((dbo_DEALER_ACTION.Date_Completed) Is Null));"
DoCmd.RunSQL strSQL
VBAコードがステートメントを実行すると、空白のままになっているTask_Deadline_Dateフィールドを除いて、すべてが正しく更新されます。
しかし、私を本当に混乱させているのは、このSQLステートメントをスタンドアロンで実行すると、期待どおりに機能していることです。さまざまなアイデアを試した後、「Deadline_Date --Deadline_adjustment AS'Task_Deadline_Date'」を文字列リテラルの日付に置き換えようとしましたが、ステートメントは正常に機能しました
誰かが何が悪いのか考えていますか?
ありがとう、
クリス