Использование подзапроса SELECT внутри оператора VALUES в VBA - PullRequest
1 голос
/ 05 ноября 2019

Попытка выполнить несколько операторов SELECT внутри VALUES оператора INSERT INTO. SELECT получает требуемую запись из других таблиц, но выдает ошибку «Ввод запроса должен содержать хотя бы одну таблицу или запрос».

Я провел небольшое исследование и обнаружил, что могу использовать любую из них, использовать SELECTили VALUES с оператором INSERT INTO. Я пытаюсь использовать подзапрос SELECT внутри оператора VALUES, потому что в моей таблице несколько полей, которые принимают значения из разных таблиц и имеют условия, подобные приведенным ниже, в моем коде, где он ищет идентификатор. Ниже приведена часть запроса, который я написал и ограничил только 3 полями. Фактическая таблица имеет 9 полей. Я тестирую его и пытаюсь упростить его здесь.

extPMBActID_SQL = "SELECT * FROM PMB;"
Set rsDB = CurrentDb.OpenRecordset(extPMBActID_SQL, dbOpenDynaset)

instRptGen_SQL = "INSERT INTO testTable (ID, arbName, testName) VALUES ('" & _
    Left(rsDB.Fields("ActivityID"), 2) & "', '" & rsDB.Fields("ActivityName") & _
    "', (SELECT AreaName FROM Area WHERE AreaID = " & _
    Left(rsDB.Fields("ActivityID"), 2) & "))"

db.Execute instRptGen_SQL, dbFailOnError

Первый параметр в выражении VALUES выбирает правильную запись, а также запись внутри подзапроса SELECT. Я не уверен, почему он не находит таблицу.

Я посмотрел вокруг, как использовать несколько SELECT внутри VALUES, но ничего не нашел, и наличие этого подзапроса может помочь мне сократить основной кусок кода до одной строки итакже спаси меня от использования множества переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...