Вопрос только. Ситуация такова:VBA Переменные внутри DoCmd.RunSQL
У меня есть 15 табличных запросов, которые извлекают данные для другого кода разъяснения представления, который использовался в претензии; т. е. вытащить все претензии, где код разъяснения представления 5. На данный момент у меня есть макрос, который будет запускать все 15 запросов, но каждый раз, когда мне нужно ввести регион, который я фильтрую из-за подсказки [What Region?], я поместили в поле критериев.
Мой вопрос:
Можно ли использовать VBA для выполнения всех 15 запросов с использованием DoCmd.RunSQL, где я должен только ввести номер региона один раз, и он будет применять его ко всем запросам?
Мои первоначальные мысли заключались в том, что VBA подскажут мне, для какого региона я фильтрую, храню это в переменной, а затем использую эту переменную в инструкции SQL. Но я даже не уверен, что вы можете это сделать? Заранее благодарим за любые советы, которые могут быть даны!
Обновление: Итак, прочитав несколько потоков, я создал базу данных, чтобы попробовать некоторые из концепций, и я думаю, что я могу быть на правильном пути?
Private Sub btnTest_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim SQLString As String
SQLString = "SELECT tblEmployees.ID, tblEmployees.Last_Name, tblEmployees.First_Name, tblEmployees.SS_ID INTO Test" _
& "FROM tblEmployees" _
& "WHERE (((tblEmployees.ID)=[What number]));"
Set qdf = CurrentDb.QueryDefs("Query1")
qdf.Parameters(0).Value = InputBox("What is the ID Number")
qdf.Execute
qdf.Close
Set db = Nothing
Set qdf = Nothing
End Sub
Так, чтобы применить это к 15 запросов я бы просто Dim другие переменные, как DAO.QueryDef правильно? Я уверен, что мне тоже нужна часть SQLString? Кроме того, я заметил, что при запуске этого макет кода для создания новой таблицы потребовалось довольно много времени. Это нормально? Кроме того, код не будет работать, если создаваемая таблица уже существует. Есть ли способ просто заменить код существующей таблицы на новую? Вид нового для этого VBA так спасибо за ваше терпение.
Простым обходным решением без vba является создание таблицы с одной строкой, установка критериев фильтра в эту таблицу и включение этого внутреннего запроса в ваши запросы. Изменение таблицы является простым, но простым. –