2010-11-22 50 views
2

J'essaie cette instruction SQL, mais je continue à obtenir une erreurproblème avec l'exécution d'une instruction d'insertion SQL dans l'accès à l'aide VBA

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

La déclaration que je suis en train d'exécuter est:

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

Les 4 valeurs intAdmissionNo, strSurName, strForeName et strTutorGroup ont toutes des valeurs et tous les champs existent.

Toute aide est très appréciée, merci! :)

+0

Où avez-vous fourni les valeurs réelles que vous voulez insérer ??? –

+0

Ils sont déjà déclarés, ils s'affichent également dans la fenêtre de surveillance. (mais l'admission ne sera pas un nombre qui change, le nom/prénom est forname/patronyme et le groupe de tutorat change aussi). Un exemple pourrait être: ... VALEURS (5040, Smith, John, 10R) – Tim

Répondre

4

Je ne l'ai pas fait à partir de VBA, mais à moins que je me trompe, vous n'envoyez pas les variables comme vous le pensez. Essayez cette ligne à la place de votre ligne actuelle:

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

Ahh merci, mais cela me donne maintenant une erreur d'exécution 3075. Erreur de syntaxe (opérateur manquant) dans l'expression de requête '10R'. (10R est ce que TutorGroup a évalué) – Tim

+2

tutorgroup est alphabétique, pas numérique, ajouter des guillemets "," "& strTutorGroup &" ') " – smirkingman

+0

Ahh, merci :) J'ai mis des citations autour de toutes les chaînes et cela a fonctionné. Bien que maintenant je semble avoir une erreur chaque fois que le nom de quelqu'un a une apostrophe dedans. Des idées pour contourner cela sans enlever les apostrophes? – Tim