以前は SQL 開発者でしたが、残念ながら私の新しい仕事は Access 2010 のみでの作業です。さまざまな更新ステートメントを実行する vba マクロを作成しようとしています。アクセスでクエリを作成しましたが、vba でクエリを呼び出そうとしています。1 つのアクセス クエリでこれを実行しようとしましたが、実行時エラー (UPDATE ステートメントの構文エラー) が発生しました。クエリはアクセスで正常に実行されますが、vba 関数はランタイム エラーで失敗します。
以下は私のvba関数です:
Public Function TestUpdate1()
Dim cmdT As ADODB.Command
Dim cnn As ADODB.Connection
Dim prmT As ADODB.Parameter
Set cnn = Application.CurrentProject.Connection
Set cmdT = New ADODB.Command
Set cmdT.ActiveConnection = cnn
cmdT.CommandText = "Update Table 1"
cmdT.CommandType = adCmdText
'Set prmT = cmdT.Parameters("Acc_Date")
'prmT.Value = #12/31/2012#
cmdT.Execute
'Set cmdT = Nothing
'
'If Err <> 0 Then
' cmdT.ActiveConnection.RollbackTrans
'Else
' cmdT.ActiveConnection.CommitTrans
'End If
End Function
関数をデバッグすると、cmdt.Execute 行でエラーが発生します。
実行中の SQL クエリ (テーブル 1 の更新) は次のとおりです。
UPDATE Table_1 SET Product = IIf(Contract Like "*budget*amt*","BUDGET Annual",
IIf(Contract Like "*CLASSIC*AMT*","CLASSIC Annual",
IIf(Contract Like "*essential*AMT*","ESSENTIAL Annual",
IIf(Contract Like "*P*PLUS*AMT*","Premier Plus Annual",
IIf(Contract Like "*SELECT*AMT*","SELECT Annual",
IIf(Contract Like "*prestige*AMT*","PRESTIGE Annual",
IIf(Contract Like "*GAP*","GAP Productl",
IIf(Contract Like "*SINGLE*TRIP*","SINGLE TRIP",
IIf(Contract Like "*premier*","PREMIER Annual",
IIf(Contract Like "*standard*","STANDARD Annual",
IIf(Contract Like "*EVAC*","European VAC","???"))))))))))), End_Date = Depart_Date+Days;
上記についてご協力いただけると幸いです。
どうもありがとう