Я написал ниже Sub
, чтобы выполнить несколько Make-table
запросов, некоторые из которых используют параметр Some_date
Sub run_query(queryName As String, Optional Some_date As Date)
Form_Select_input.logProgress queryName
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs(queryName)
On Error Resume Next
qdf!Date_after = Date_after
On Error GoTo 0
qdf.Execute
Set qdf = Nothing
End Sub
Типичный запрос выглядит как
PARAMETERS Some_date DateTime;
SELECT Some_field
, Other_field
INTO Some_Target
FROM Some_Source
LEFT JOIN Other_Source
ON Some_Source.key = Other_Source.key
where Some_Source.Transaction_Date > [Some_date];
Теперь это работает в первый раз, когда я запускаю запросы, но во второй раз выдает ошибку, таблицы уже существуют, поэтому я хотел бы написать что-то вроде
Sub run_query(queryName As String, Optional Some_date As Date)
Form_Select_input.logProgress queryName
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs(queryName)
On Error Resume Next
DoCmd.DeleteObject acTable, qdf.Destination ' At first execution, the destination does not exist, but we resume next
qdf!Date_after = Date_after ' For some queries, the parameter does not exist, but we resume next
On Error GoTo 0
qdf.Execute
Set qdf = Nothing
End Sub
Пожалуйста, помогите мне заменить qdf.Destination
на что-то, что существует.