tawac
Messages postés37Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention28 octobre 2005
-
17 juin 2005 à 10:26
tawac
Messages postés37Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention28 octobre 2005
-
17 juin 2005 à 14:04
Bonjour à tous,
J'ai une liste déroulante dans un formulaire Access (la liste affiche le contenu de la table Fournisseur). Je souhaiterais ajouter un enregistrement dans la table fournisseur au cas où l'utilisateur tape une valeur non présente dans la liste.
problème : vba ne semble pas reconnaître ma variable "nouveau" à l'intérieur de l'instruction sql : Access m'affiche une boîte de dialogue qui me demande la valeur du paramètre "nouveau".
2°pb : la liste déroulante ne s'update pas après ajout dans la table fournisseur (il fo fermer le formulaire puis le rouvrir), g essayé updaterecord et repaint mais la syntaxe ne doit pas être bonne.
merci d'avance,
précision : je débute en vba
Public Sub numéro_du_fournisseur_NotInList(nouveau As String, Response As Integer)
If MsgBox("Voulez-vous ajouter ?"&nouveau, vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
DoCmd.RunSQL "INSERT INTO Fournisseur VALUES (nouveau,'','','','','','','','','','','','','','','');"
cs_Yoyo2B
Messages postés125Date d'inscriptionjeudi 27 février 2003StatutMembreDernière intervention 6 mars 2008 17 juin 2005 à 10:35
DoCmd.RunSQL "INSERT INTO Fournisseur VALUES (nouveau,'','','','','','','','','','','','','','','');"
ta variable nouveau
est comprise dans la zone de texte, donc pour lui c'est ... du texte :)
écris :
DoCmd.RunSQL "INSERT INTO Fournisseur VALUES (" & nouveau & ",'','','','','','','','','','','','','','','');"
pour ta zone de liste, essaie update du formulaire ou plus simplement (access galère souvent avec les update) tu fait
MaListeDeroulant.Item.add(nouveau )
c a peu prés la bonne syntaxe je crois
ou alors c
MaListeDeroulant.AddItem(nouveau )
tawac
Messages postés37Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention28 octobre 2005 17 juin 2005 à 14:04
En fait le AddItem ne marche pas car la liste est basée sur une requête.
g trouvé un moyen qui peut convenir : je séléctionne le fournisseur qui vient d'être ajouté à la table et je passe ensuite au contrôle suivant (ici: type_Société) en espérant que l'utilisateur ne reviendra pas sur son choix (le nouvel enregistrement n'apparaît tjrs pas dans la liste).
si qqun a une meilleure idée qu'il me le dise merci.
DoCmd.RunSQL "INSERT INTO Fournisseur VALUES (""" & nouveau & """,'','','','','','','','','','','','','','','');"
numéro_du_fournisseur.Value = nouveau
type_société.SetFocus
Else
Response = acDataErrContinue
numéro_du_fournisseur.Undo