2010-11-22 59 views
2

在訪問執行一個SQL INSERT語句我想這條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 

intAdmissionNo,strSurName,strForeName和strTutorGroup中的4個值都具有值並且字段全部存在。

任何幫助非常感謝,謝謝! :)

+0

你在哪裏提供了你想要插入的實際值? – 2010-11-22 13:10:50

+0

它們先前被聲明,它們也出現在監視窗口中。 (但是入場號碼不會變化,同名/姓氏是姓名和tutorgroup的變化)。一個例子可能是:... VALUES(5040,Smith,John,10R) – Tim 2010-11-22 13:19:56

回答

4

我還沒有從VBA那樣做過,但除非我誤以爲你不會像你想的那樣發送變量。嘗試使用這一行代替當前的行:

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

Ahh謝謝,但現在給我一個運行時錯誤3075.查詢表達式'10R'中的語法錯誤(缺少運算符)。 (10R是TutorGroup評估過的) – Tim 2010-11-22 13:16:35

+2

tutorgroup是字母,不是數字,加上引號「,'」&strTutorGroup&「')」 – smirkingman 2010-11-22 13:27:46

+0

啊,謝謝:)我把引號放在所有的字符串中,它工作。儘管現在我似乎在每個人的名字都有撇號的時候都會出錯。任何想法如何繞過這個不刪除撇號? – Tim 2010-11-22 17:58:30