Создать таблицу из запроса в доступе VBA

0

У меня есть этот запрос, который я создал в 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
Теги:
ms-access
access-vba

1 ответ

3
Лучший ответ

почему вы хотите сделать для этого новый запрос? Просто выполните 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

Кстати, в большинстве случаев это плохая идея сделать физические копии таблицы. Обычно вы должны установить одну таблицу истории с дополнительным столбцом даты и выгрузить все копии в эту таблицу. Во время выполнения он НИКОГДА не должен требовать добавления новых таблиц/столбцов. Все остальное является показателем плохой модели данных!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню