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

IHM Discussion :

remplir une table à partir une liste déroulante


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut remplir une table à partir une liste déroulante
    Bonjour,

    J'utilise Access 2007.
    Sujet: Je voudrais remplir une table à l'aide d'une liste déroulante. Je m'explique...

    Je suis en train de créer une base de donnée avec des formulaires qui vont gérer des documents word. Certaines informations sont à rentrer. Je mets à disposition des listes déroulantes permettant de simplifier leurs choix, mais si la donnée à rentrer n'est pas dans la liste déroulante, je voudrais l'ajouter à la table et la rendre disponible dans la liste de choix par la suite.

    Je n'ai aucune idée de comment procéder...

    Par avance, merci

  2. #2
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Points : 151
    Points
    151
    Par défaut
    Une idée:

    1. Créer un formulaire nommé, eg, frmInputWordDocuments, mettre une liste décourante nommée lsmDocName.

    2. dans l'évènement Open de ce formulaire,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Form_Open(Cancel As Integer)
    '
      Me.lsmDocName.RowSourceType = "Value List"
      Me.lsmDocName.RowSource = "Aucun"
    '
    End Sub
    3. dans l'évènement NotInList du contrôle lsmDocName,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub lsmDocName_NotInList(NewData As String, Response As Integer)
    '
    ' remarquons le séparateur ; pour des éléments d'une liste Access.
    '
       Me.lsmDocName.RowSource = Me.lsmDocName.RowSource & ";" & NewData 
       Response = acDataErrAdded
    End Sub

    4. dans l'évènement AfterUpdate du contrôle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub lsmDocName_AfterUpdate()
    '
    ' Ajouter le nom du document dans une table, ou bien ouvrir,
    ' en tout cas faire ce qu'il mérite d'être fait.
    '
    End Sub

    Je n'ai pas testé ce code, à toi de me dire si cela t'avance.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    merci, je vais essayer et je te tiens au conrant...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    J'ai utilisé le principe que tu m'as donné pour réaliser cette fonction qui marche. Je donne le code pour ceuw que ça intéresse...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub Entreprise_NotInList(NewData As String, Response As Integer)
     
       Dim dbsOrders As DAO.Database
       Dim rstEntreprise As DAO.Recordset
       Dim intAnswer As Integer
     
    On Error GoTo ErrorHandler
     
       intAnswer = MsgBox("Ajouter " & NewData & " à la liste des entreprises?", _
          vbQuestion + vbYesNo)
     
       If intAnswer = vbYes Then
     
          Set dbsOrders = CurrentDb
          Set rstEntreprise = dbsOrders.OpenRecordset("Entreprise")
          rstEntreprise.AddNew
          rstEntreprise!Entreprise = NewData
          rstEntreprise.Update
     
          Response = acDataErrAdded        ' recharge la combobox
     
       Else
          Response = acDataErrDisplay       ' l'utilisateur doit sélectionner un choix dans la liste
     
       End If
     
       rstEntreprise.Close
       dbsOrders.Close
     
       Set rstEntreprise = Nothing
       Set dbsOrders = Nothing
     
       Exit Sub
     
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
    End Sub
    Merci encore pour le coup de main...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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