У меня есть этот запрос, который я создал в VBA, и я хочу сделать его в таблице в VBA. В любом случае я могу это сделать? Я просмотрел запрос таблицы make, но я не уверен, как создать его внутри VBA. Любая помощь будет принята с благодарностью!
Sub RevH()
Dim dte As String, clientQry As String, db As Database, clientQry1 As Variant
Set db = CurrentDb
dte = InputBox("What date was the Data Dump run?", "Please Input a date")
clientQry = "SELECT DISTINCT t.[CLIENT ID], t.[CLIENT NAME] " & _
"FROM FN_DataDump_ALL_" & dte & " as t WHERE " & _
" (((t.[CLIENT NAME]) Not Like ""*Test*"" ));"
If CheckQuery("NewIDs") = "Yes" Then
DoCmd.DeleteObject acQuery, "NewIDs"
End If
clientQry1 = db.CreateQueryDef("NewIDs", clientQry)
End Sub
почему вы хотите сделать для этого новый запрос? Просто выполните SQL, вызвав метод CurrentDb.Execute.
И второе: правильным синтаксисом для запроса, который создает новую таблицу, будет:
SELECT YourFields INTO YourNewTable FROM YourOldTable
так просто сделайте что-то вроде этого:
Dim clientQry as String
clientQry = "SELECT DISTINCT t.[CLIENT ID], t.[CLIENT NAME] " & _
"INTO NewTableName " & _
"FROM FN_DataDump_ALL_" & dte & " as t WHERE " & _
" (((t.[CLIENT NAME]) Not Like ""*Test*"" ));"
CurrentDb.Execute clientQry, dbFailOnError
Кстати, в большинстве случаев это плохая идея сделать физические копии таблицы. Обычно вы должны установить одну таблицу истории с дополнительным столбцом даты и выгрузить все копии в эту таблицу. Во время выполнения он НИКОГДА не должен требовать добавления новых таблиц/столбцов. Все остальное является показателем плохой модели данных!