Autoriser nouvel enregistrement dans une table à partir d'un formulaire
2 réponses
habby
Bonjour à tous,
J'ai un "petit" soucis de codage, si vous trouvez réponse à ma question ça serait génial. Voilà le problème:
J'ai un formulaire nommé F_animaux-eleveur-naisseur. Dans ce formulaire il y a une liste déroulante combo125 qui permet de sélectionner un nom issu d'une requête Q_animaux-eleveur-naisseur. Si le nom n'est pas disponible dans la liste, j'aimerai proposer de l'enregistrer dans la requête.
Pour cela j'ai vu qu'il était possible de se servir de la fonction "insert into". J'ai mis le code:
Private Sub Combo125_NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des noms des naisseurs ?", _
vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur) VALUES (& NewData &)"
Else
Response = acDataErrContinue
Combo125.Undo
End If
End Sub
Access m'affiche alors le message d'erreur: "can't execute code in break mode". Qu'est-ce qui ne lui plait pas ?
J'espère avoir donné assez d'informations pour que quelqu'un puisse me débloquer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
db
Le 21/12/2012 14:29, habby a écrit :
Bonjour à tous,
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur) VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in break mode". Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à l'exécution de quelle ligne précisément il s'affiche, mais de toute façon, je modifierais la ligne Docmd.RunSQL comme ceci :
(après la parenthèse ouvrante suivant VALUES : apostrophe puis guillemet, avant la parenthèse fermante : guillemet puis apostrophe)
db
Le 21/12/2012 14:29, habby a écrit :
Bonjour à tous,
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur)
VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in break mode".
Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à
l'exécution de quelle ligne précisément il s'affiche, mais de toute
façon, je modifierais la ligne Docmd.RunSQL comme ceci :
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur) VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in break mode". Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à l'exécution de quelle ligne précisément il s'affiche, mais de toute façon, je modifierais la ligne Docmd.RunSQL comme ceci :
(après la parenthèse ouvrante suivant VALUES : apostrophe puis guillemet, avant la parenthèse fermante : guillemet puis apostrophe)
db
Gloops
db a écrit, le 21/12/2012 14:46 :
Le 21/12/2012 14:29, habby a écrit :
Bonjour à tous,
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur) VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in break mode". Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à l'exécution de quelle ligne précisément il s'affiche, mais de tou te façon, je modifierais la ligne Docmd.RunSQL comme ceci :
(après la parenthèse ouvrante suivant VALUES : apostrophe puis guillemet, avant la parenthèse fermante : guillemet puis apostrophe)
db
Bonjour,
Ah ben moi, ce que j'ai compris, c'est que ça se produit sur DoCmd.RunS QL
Et si il ne veut pas exécuter ça en pas à pas (au motif peut-être bien que la base de données est dans une instance différente du code, ou u ne astuce du style), il faut le laisser exécuter en vitesse normale : poin t d'arrêt sur l'instruction suivante (avec F9 si je ne m'abuse, et ça d oit mettre la ligne en rouge -la ligne suivante, hein, j'insiste bien), et appuyer sur F5. Non ?
db a écrit, le 21/12/2012 14:46 :
Le 21/12/2012 14:29, habby a écrit :
Bonjour à tous,
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur
(nom_naisseur)
VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in
break mode".
Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à
l'exécution de quelle ligne précisément il s'affiche, mais de tou te
façon, je modifierais la ligne Docmd.RunSQL comme ceci :
(après la parenthèse ouvrante suivant VALUES : apostrophe puis
guillemet, avant la parenthèse fermante : guillemet puis apostrophe)
db
Bonjour,
Ah ben moi, ce que j'ai compris, c'est que ça se produit sur DoCmd.RunS QL
Et si il ne veut pas exécuter ça en pas à pas (au motif peut-être bien
que la base de données est dans une instance différente du code, ou u ne
astuce du style), il faut le laisser exécuter en vitesse normale : poin t
d'arrêt sur l'instruction suivante (avec F9 si je ne m'abuse, et ça d oit
mettre la ligne en rouge -la ligne suivante, hein, j'insiste bien), et
appuyer sur F5. Non ?
DoCmd.RunSQL "INSERT INTO Q_animaux-eleveur-naisseur (nom_naisseur) VALUES (& NewData &)"
Access m'affiche alors le message d'erreur: "can't execute code in break mode". Qu'est-ce qui ne lui plait pas ?
Bonjour,
J'avoue n'avoir jamais vu ce message, et il serait utile de savoir à l'exécution de quelle ligne précisément il s'affiche, mais de tou te façon, je modifierais la ligne Docmd.RunSQL comme ceci :
(après la parenthèse ouvrante suivant VALUES : apostrophe puis guillemet, avant la parenthèse fermante : guillemet puis apostrophe)
db
Bonjour,
Ah ben moi, ce que j'ai compris, c'est que ça se produit sur DoCmd.RunS QL
Et si il ne veut pas exécuter ça en pas à pas (au motif peut-être bien que la base de données est dans une instance différente du code, ou u ne astuce du style), il faut le laisser exécuter en vitesse normale : poin t d'arrêt sur l'instruction suivante (avec F9 si je ne m'abuse, et ça d oit mettre la ligne en rouge -la ligne suivante, hein, j'insiste bien), et appuyer sur F5. Non ?