В каком контексте вы запускаете оператор SQL? Вы можете использовать функцию, которую вы написали, если вы используете объект QueryDef в VBA.
Private Sub Test_Update_SQL()
Update_SQL1 "Test_Query", "Test_Table"
End Sub
Public Function Update_SQL(Query_Name As String, Table_Name As String)
Dim Obj_Qdef As Object
CurrentDb.QueryDefs.Refresh
Set Obj_Qdef = CurrentDb.QueryDefs(Query_Name)
'Debug.Print Generate_Query_String(Table_Name) 'For troubleshooting SQL
Obj_Qdef.SQL = Generate_Query_String(Table_Name)
CurrentDb.QueryDefs.Refresh
Obj_Qdef.Execute
Set Obj_Qdef = Nothing
End Function
Private Function Generate_Query_String(Table_Name As String) As String
Generate_Query_String = "INSERT INTO " & Table_Name & "( DateColumn )VALUES (#" & Get_Date() & "#);"
End Function
Private Function Get_Date() As String
Dim Temp_Date As Date
Dim Temp_Date_Plus As String
Temp_Date = DateAdd("d", Now(), 30)
Temp_Date_Plus = Format(Temp_Date, "mm/dd/yyyy")
Get_Date = Temp_Date_Plus
End Function
Несколько примечаний, которые следует помнить, когда вы используете запросы на обновление или вставку, всегда заключают значения даты в # # и строки в '' для vba. Мне нравится использовать chr (35) = # [pound / hashtag] и chr (39) = '[одинарная кавычка] при написании кода, который будет генерировать SQL.