Я использую VBA для передачи параметра в сохраненный запрос, но продолжаю получать ошибку. Здесь хранится запрос:Слишком мало параметров. (1) Ожидаемый
PARAMETERS Parm1 Long;
UPDATE tJ010_SRP4Codes INNER JOIN tZ100_VendorProfiles
ON tJ010_SRP4Codes.SRP4Code = tZ100_VendorProfiles.JdeSRP4Code
SET tJ010_SRP4Codes.Vendor = 'TEST'
WHERE ((([Parm1]=tZ100_VendorProfiles.VendorID)));
Вот VBA, который вызывает запрос:
Dim Parm1 As Long
db.QueryDefs(!QueryName).Parameters(Parm1) = intVdrProfileID
db.Execute !QueryName, dbFailOnError
Я попытался с и без «Параметры ...» линия в сохраненный запрос. Такая же ошибка в обоих направлениях. Сохраненный запрос работает отлично, но не при вызове из VBA.
Добавление двойных кавычек вокруг «Parm1» и добавление «.value» не повредило, но изменение «db.execute» на «qdf.execute» заставило все работать. –
С 'Dim Parm1 As Long',' Parm1' инициализируется до нуля. Затем, если вы не присвоите ему другое значение позже, «Параметры (Parm1)» будут такими же, как «Параметры (0)». Так что да, это может работать в этой ситуации, но я не думал, что это то, что вы на самом деле предназначенный для * Parm1 *. И если это то, что вы намеревались все время, я думаю, что было бы не так просто использовать 'Parameters (0)' в первую очередь. – HansUp