IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Ajout dans liste déroulante


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ajout dans liste déroulante
    Bonjour à tous !

    Dans un sous-formulaire, j'ai une liste déroulante dans laquelle j'ajoute de nouveaux enregistrements.
    J'utilise le code donné dans la FAQ Access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Periodique_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 tb_periodiques ( Periodique ) SELECT """ & NewData & """;"
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            Modifiable0.Undo
        End If
    End Sub
    Je dois dire qu'il fonctionne très bien ! Trop bien en fait, la valeur s'ajoute deux fois.
    Je soupçonne que l'erreur ne vient pas du code, car j'ai aussi essayé celui-là avec le même résultat (deux enregistrements à la place d'un).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Compare Database
    Private Sub Periodique_NotInList(NewData As String, Response As Integer)
        Dim rst As DAO.Recordset
     
        If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des périodiques ?", _
                           vbQuestion + vbYesNo) = vbYes Then
                        Set rst = CurrentDb.OpenRecordset("tb_periodiques")
                        rst.AddNew
                            rst!Periodique = NewData
                        rst.Update
                        rst.Close
                        Set rst = Nothing
    End If
    Response = acDataErrAdded
    End Sub
    Auriez-vous une idée ? Où est-ce que je fais une erreur ?

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    En toute apparence, il n'y a pas d'erreur, sauf que dans le second bout de code, la portion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response = acDataErrAdded
    doit être a l'intérieur du bloc If...
    Si tu fais un pas à pas, (point d'arrêt sur l'événement), est-ce que ça ajoute aussi deux fois la valeur ?

    Argy

Discussions similaires

  1. [XL-2007] Ajout nouvelle donnée dans liste déroulante Userform/combobox
    Par grhum7 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/03/2014, 16h10
  2. Réponses: 28
    Dernier message: 28/03/2012, 14h42
  3. [AC-2007] Requete ajout dans liste déroulante
    Par brutus437 dans le forum IHM
    Réponses: 8
    Dernier message: 22/02/2011, 05h52
  4. Réponses: 4
    Dernier message: 19/10/2008, 10h25
  5. ajout dans liste (syntaxe SQL)
    Par dr_feelgood dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 20/10/2005, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo