Bonjour à tous, j'ai actuellement une grosse base de donnée pour la gestion d'une épicerie sous access que je dois rendre Lundi et j'aimerai qu'elle soit nickel pour ma présentation au Prof.

J'ai crée plusieurs formulaires et là j'aimerai créer un formulaire de saisie avec execution de la saisie en appuyant sur un bouton.

Voici ma table en MLDR : CATALOGUE (Ref_Catalogue, #N_Fournisseur, Libelle_Catalogue, Date_Catalogue)

Mon Formulaire "A_Catalogue" contien 3 champs de saisie pour la ref, le libellé et la date et une liste déroulante représentant la requete SQL suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT Libelle_Fournisseur FROM FOURNISSEUR;
Là pas de soucis.

Voici maintenant mon bouton Command4 avec la commande VB suivante:



Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub Command4_Click()
    var1 = Forms!A_Catalogue!Ref_Catalogue
    var2 = (DoCmd.RunSQL("SELECT FOURNISSEUR.N_Fournisseur FROM FOURNISSEUR WHERE FOURNISSEUR.Libelle_Fournisseur=forms!A_Catalogue!Libelle_Fournisseur;" ))
    var3 = Forms!A_Catalogue!Libelle_Catalogue
    var4 = Forms!A_Catalogue!Date_Catalogue
    DoCmd.RunSQL ("INSERT INTO CATALOGUE VALUES ('var1','var2','var3','var3');" )
    DoCmd.Save
    DoCmd.Close
    DoCmd.OpenForm "Gestion_Catalogue"
End Sub

Je suis novice en vba et je ne sais pas si mes déclarations de variables ni mes fonctions sont bonnes.

Lorsque j'appuis sur le bouton, il me donne le mésage d'érreur suivant:
Compile Error: Expected Fonction or Variable

Et le .RunSQL de var2 est en surbrillance.

Pouvez vous l'aider à affiner mon code?

Merci d'avance

EDIT
---------------
J'ai modifié la commande, je pense que je ne suis pas très loin, je ne pense pas avoir besoin de déclarer mes variables, je pense que inserer les saisies de chaques champs dans la requete insert est suffisant mais je m'y prend peut etre mal car j'ai un message d'erreur.

Voici ma commande:



Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub Command4_Click()
    DoCmd.RunSQL "INSERT INTO CATALOGUE (Ref_Catalogue,N_Fournisseur,Libelle_Catalogue,Date_Catalogue) VALUES ('& Forms!A_Catalogue!Ref_Catalogue &','(SELECT FOURNISSEUR.N_Fournisseur FROM FOURNISSEUR WHERE FOURNISSEUR.Libelle_Fournisseur='& Forms!A_Catalogue!Libelle_Fournisseur &')','& Forms!A_Catalogue!Libelle_Catalogue &','& Forms!A_Catalogue!Date_Catalogue &');"
    DoCmd.Save
    DoCmd.Close
    DoCmd.OpenForm "Gestion_Catalogue"
End Sub

La requete s'execute mais il y a un message d'avertissement: