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