Bonjour tout le monde j’ai un probleme d’éxécution il me met trop peu de parametre 9 attendu mais je sais pas ou est le souci il me l’indique pas si quelqu’un peut m’aider je le remercie d’avacne
Private Sub Commande13_Click()
On Error GoTo Err_Commande13_Click
Set db = CurrentDb
Dim m As String
Dim a As String
Dim name As String
m = Me!mois
a = Me!année
DoCmd.Se
tWarnings False
'Affectation du lieu de récupération des fichiers
Dim NomDir As String
NomDir = "D:\Eric\dossier_projets\TDB\PJPF\"
'On atteint le répertoire concerné où se trouvent les fichiers
ChDir (NomDir)
Dim XL As Excel.Application
Dim nomClasseur1 As String
Set XL = CreateObject("Excel.Application" )
nomClasseur1 = "PJPF2007-" & a & m & ".xls"
DoCmd.TransferSpreadsheet acImport, , "TableTest" & a & m, "D:\Eric\dossier_projets\TDB\PJPF\" & nomClasseur1, 0
name = "TableTest" & a & m
Dim dbCourante As DAO.Database
'Définir la base de travail comme la base actuelle
Set dbCourante = CurrentDb
'Définir la requête
Sql = " INSERT INTO TableTest ( année, OPPO, MPE, MPF, MRE, MRF, M__ ) SELECT '2005_T3', " & name & ".OPPO, " & name & ".MPE, " & name & ".MPF, " & name & ".MRE, " & name & ".MRF, " & name & ".M__ FROM " & name & " WHERE " & name & ".CBQD='total' And " & name & ".MOIS='total' And " & name & ".CMOP='total';"
'Exécuter la requête
dbCourante.Execute (Sql)
Set dbCourante = Nothing
Exit_Commande13_Click:
Exit Sub
Err_Commande13_Click:
MsgBox Err.Description
Resume Exit_Commande13_Click
End Sub
Bonjour,
pour trouver ton erreur, il faudrait supprimer le "on error" pour que tu sache sur quelle ligne tu plante (et éventuellement passer en mode debug) ou afficher ce no de ligne, ça doit être "erl".
Là, c’est un appel de fonction auquel il manque des arguments, comme il n’y en a pas beaucoup, ça doit être celle-là:DoCmd.TransferSpreadsheet
essaye de vérifier avec la doc les arguments à utiliser (moi je ne connais pas assez access).
Tu devrais préciser VBA + Access dans ton titre
Comme le dit deltree, inhibe temporairement ton on error pour voir d’où vient le pb.
Je ne pense pas que ce soit TransferSpreadsheet dans la mesure où presque tous ses arguments sont facultatifs.
Dans un premier temps, tu compiles ton programme (debug > compile) pour verifier qu’il n’y a pas d’erreur de syntaxe.
Ensuite, tu places un point d’arrêt (F9) sur la première ligne active de ta fonction (set db …) et tu lances ton programme.
Quand il va s’arrêter sur le break, tu avances ensuite ligne par ligne (F8) en visualisant les valeurs que prennent les variables en les survolant avec la souris.
Normalement, tu vas vite trouver la ligne fautive.
Après, il faudra trouver le pourquoi …
Meric donc pour la ligne c’est
dbCourante.Execute (Sql)
Donc, ce qui est intéressant, c’est de savoir la valeur exacte de la variable Sql au moment où tu tentes d’exécuter la requete.
Elle doit être un peu longue pour bien la visualiser dans la fenêtre espions, mais tu peux l’afficher avec
MsgBox "Sql a pour valeur : "+Sql
et la copier par ex dans notepad
Et après, tu vérifies si tes arguments sont cohérents
justement c’est fait c’est ue chose que j’avais faites auparavant mais j’ai trouvé la solution c’est un probleme de colonne il m’en manque une voila tout
Ok c’est résolu donc 
petite remarque, c’est normal qu’il y a un accent à ton nom de colonne “année”?
c’est pas trop conseillé comme truc 
oui et non en fait la ligne etait la fusion de deux requêtes et je vois pas comment ajouter mon champs années en mettant la valeur moi meme
Sinon oui c’est normal pour année dans ma table fixe c’est comme ca et ca marche parfaitement