Access sur absence dans la liste

LE_CID13 Messages postés 31 Statut Membre -  
LE_CID13 Messages postés 31 Statut Membre -
Bonjour,
j'ai une table produit (ID, nom du produit, ...)
une table devis (N°devis, nom client)
une table devis corps (N°devis corps, N°devis, N° article) avec une liste deroulante basée sur "ID" ET "NOM PRODUIT"et qui m'affiche le "Nom du produit"
une requette detail devis (pour mon sous formulaire) basé sur ma table "devis corps"
et enfin un formulaire de saisie de mes devis avec un 1er partie les information relative un client
et en sous formulaire les articles choisie par le client
BREF tout marche très bien
Mon probleme est que si je souhaite un article n'est pas dans la liste "Erreur"
Alors j'ai trouver ça sur un forum (evenement "sur absence dans la liste")

Private Sub N°Article_NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des prénoms ?", _
vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
DoCmd.RunSQL "INSERT INTO Produit ( Nom du produit ) SELECT """ & NewData & """;"
Response = acDataErrAdded
Else
Response = acDataErrContinue
N°Article.Undo
End If
End Sub

Mais ça marche pas quelqu'un pourrait-il m'aider!
A voir également:

2 réponses

LE_CID13 Messages postés 31 Statut Membre 2
 
Sinon j'ai ça mais ça marche pas non plus

Sub N°Article_NotInList(Newdata As String, Response As Integer)
' Permet à l'utilisateur d'ajouter un nouvel Article
' dans la table Produit au travers de la liste

Dim MaBase As Database, MaTable As Recordset
Dim N°Article As Integer

N°Article = MsgBox("Voulez-vous ajouter une nouvelle catégorie ?",
vbYesNo)
If N°Article = vbYes Then
' Ajout de la nouvel Article dans la liste
Set MaBase = DBEngine(0)(0)
Set MaTable = MaBase.OpenRecordset("Produit", dbOpenTable)
MaTable.AddNew
MaTable("[Nom du produit]") = Newdata
MaTable.Update
MaTable.Close
MaBase.Close
' Annulation de la saisie dans la liste pour éviter le message
' d'erreur associée à l'absence dans la liste
DoCmd.DoMenuItem acFormBar, acEdit, 0
' Cette réponse déclenche l'actualisation automatique de la liste
Response = acDataErrAdded
Else
DoCmd.DoMenuItem acFormBar, acEdit, 0
' Réponse annulant la saisie et ouvrant la liste modifiable
End If
End Sub
0
LE_CID13 Messages postés 31 Statut Membre 2
 
marche pas non plus

Private Sub N°Article_NotInList(NewData As String, Response As Integer)
Dim rst As DAO.Recordset

If MsgBox("L'élément [" & NewData & "] ne figure pas dans la liste. Voulez-vous l'ajouter ?", vbQuestion + vbYesNo) = vbYes Then
' Ajouter l'élément à la liste
Set rst = CurrentDb.OpenRecordset("Produits")
rst.AddNew
rst!nom_du_produit = NewData
rst.Update
rst.Close
Set rst = Nothing
End If

' Annuler le message d'erreur d'Access
Response = acDataErrAdded
End Sub

Es-que cela ne marche pas parceque mon sous formulaire est basé sur une requette et non sur la table produit
0