2014-11-12 2 views
0

У меня есть этот запрос, который я создал в VBA, и я хочу сделать его в таблицу в VBA. В любом случае я могу это сделать? Я просмотрел запрос таблицы make, но я не уверен, как создать его внутри VBA. Любая помощь будет принята с благодарностью!Создайте таблицу из запроса в доступе 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 

ответ

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 

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

Смежные вопросы