2010-11-22 3 views
2

Я пытаюсь это SQL заявление, но я получаю сообщение об ошибкеПроблема с выполнения оператора SQL вставки доступа с помощью VBA

Run-time error '3061': 
Too few parameters. Expected 4. 

Оператор Я пытаюсь выполнить это:

sSQL = "INSERT INTO MasterTable (AdmissionNumber, Surname, Forename, TutorGroup) VALUES (intAdmissionNo, strSurName, strForeName, strTutorGroup)" 
CurrentDb.Execute sSQL, dbFailOnError 

4 значения intAdmissionNo, strSurName, strForeName и strTutorGroup имеют значения и все поля существуют.

Любая помощь очень ценится, спасибо! :)

+0

Где вы указали фактические значения, которые хотите вставить ??? –

+0

Они объявлены ранее, они также отображаются в окне часов. (но при вступлении нет числа, которое изменяется, имя/фамилия для имени/фамилии и изменения tutorgroup также). Одним из примеров может быть: ... VALUES (5040, Smith, John, 10R) – Tim

ответ

4

Я не сделал это из VBA, но, если я не ошибаюсь, вы не отправляете переменные, как вы думаете. Попробуйте эту строку вместо текущей:

sSQL = "INSERT INTO MasterTable (AdmissionNumber, Surname, Forename, TutorGroup) VALUES (" & intAdmissionNo & ", " & strSurName & ", " & strForeName & ", " & strTutorGroup & ")" 
+0

Ahh спасибо, но теперь это дает мне ошибку времени выполнения 3075. Ошибка синтаксиса (отсутствующий оператор) в выражении запроса «10R». (10R - это то, что TutorGroup оценила) – Tim

+2

tutorgroup является алфавитным, а не числовым, добавляет кавычки "," & strTutorGroup & "')" – smirkingman

+0

Ahh, спасибо :) Я положил кавычки вокруг всех строк, и это сработало. Хотя теперь я, кажется, получаю ошибку каждый раз, когда у кого-то есть имя апострофа. Любые идеи, как обойти это без удаления апострофов? – Tim

Смежные вопросы