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!
Configuration: Windows Vista Internet Explorer 7.0

2 réponses

  1. 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
  2. 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