Предполагая, что у вас есть сохраненный проходной запрос, вы можете на лету изменять sql и таким образом возвращать значения.Следующий код выполняется без необходимости даже объявлять какие-либо переменные.
With CurrentDb.QueryDefs("qryPassReturn")
.SQL = "INSERT INTO someTable (col1, col2) VALUES ('val1', 'val2') RETURNING col0"
Debug.Print .OpenRecordset()(0)
End With
Я полагаю, вы могли бы объявить reocrdset для получения возвращаемого значения и перейти:
Dim rstReturn As DAO.Recordset
With CurrentDb.QueryDefs("qryPassReturn")
.SQL = "INSERT INTO someTable (col1, col2) VALUES ('val1', 'val2') RETURNING col0"
Set rstReturn = .OpenRecordset
End With
Debug.Print rstReturn(0)
Итак, выможет просто передать sql, и возвращенные значения появятся как стандартный reocrdset.Итак, первый пример должен работать нормально, и обратите внимание, что я даже не объявил один varialbe, чтобы сделать эту работу.Вы, как уже упоминалось, просто нуждаетесь в сохраненном проходном запросе.