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

Access Discussion :

Comment remplir un controle par un autre


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut Comment remplir un controle par un autre
    Bonjour,
    j'ai le problème suivant: dans un formulaire je voudrais remplir un controle1 (type liste), avec une saisie effectuée dans un controle2(type liste modifiable). De sorte que chacune des saisie ou selection dans controle2, le texte saisi s'ajoute dans le controle1.

    Si mon explication n'est pas assez claire faites-le moi savoir
    Amicalement
    Thoruiz

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    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 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Les contrôles Liste et Combo d'Access sont incompatibles ave la méthode AddItem donc pour ton cas, je te suggère de créer une table temporaire (que tu vides à l'ouverture du formulaire) et qui se rempli au fur et à mesure que tu choisis un élément dans la zone de liste.
    Bien entendu, tu seras sensé contrôler les doubles entrées afin d'éviter les doublons.
    A chaque événement Click() ou AfterUpdate(), tu affectes ta ListBox à la table temporaire (RowSource).



    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci de votre réponse rapide. Je n'ai pas tout compris. Comment la table temporaire est-elle crée? s'agit-t-il d'une requête création de table? à partir de quel évènement?
    Pourriez vous m'écrire un bout de code à partir duquel je pourrais avancer?
    Dernier soucis, je souhaite que controle2 affiche instantanément les saisies de controle1.
    Si controle1 était un champ mémo, cela serait-il plus simple?
    Merci de m'éclairer.

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    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 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bien...
    Tu créés une table nommée TBLTempItemData avec un champ texte nommé ItemSelected.

    Tu créés un formulaire avec une ComboBox et une ListBox.
    Dans la ComboBox que j'ai nommé pour l'exemple cmbAvailableList, tu affectes une table de manière à ce que la la liste des éléments à choisir apparaissent.
    Dans la ListBox, tu n'appliques rien.

    Sur l'événement Load du formulaire, tu places le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim SQLDelete As String
     
      SQLDelete = "DELETE * FROM TBLTempItemData"
      CurrentDb.Execute SQLDelete, dbSeeChanges
      lstYourChoice.RowSource = vbNullString
    => celui-ci efface le contenu de la table et la liste

    Sur l'événement AfterUpdate de cmbAvailableList , tu places le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim strSelection As String
     
      strSelection = Me!cmbAvailableList
      If NotAlreadyExists(strSelection) Then
        AddNewItem strSelection, "TBLTempItemData"
        lstYourChoice.RowSource = "TBLTempItemData"
      Else
        MsgBox "Élément déjà ajouté !", 48
      End If
    Tu ajoutes enfin cette fonction et cette méthode qui vont se charger de vérifier l'existence et l'ajout des données dans la table.

    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
    Private Function NotAlreadyExists(ByVal ItemToCheck As String) As Boolean
    Dim oRS As Recordset
    Dim SQLSelect As String
     
      SQLSelect = "SELECT * FROM TBLTempItemData WHERE ItemSelected = " & Chr(34) & ItemToCheck & Chr(34)
      Set oRS = CurrentDb.OpenRecordset(SQLSelect, 2)
        NotAlreadyExists = oRS.EOF
        oRS.Close
      Set oRS = Nothing
    End Function
     
    Private Sub AddNewItem(ByVal WhatToAdd As String, ByVal TableName As String)
    Dim SQLInsert As String
     
      SQLInsert = "INSERT INTO " & TableName & " (ItemSelected) VALUES (" & Chr(34) & WhatToAdd & Chr(34) & ");"
      CurrentDb.Execute SQLInsert, dbSeeChanges
    End Sub
    Tu passes en mode formulaire et tu testes... et ça marche...
    A toi de peaufiner selon tes besoins.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

Discussions similaires

  1. [Cercles] Remplir un cercle par d'autre cercles
    Par Yogui dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 08/06/2008, 00h41
  2. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54
  3. [VB.NET] Comment remplacer une couleur par une autre?
    Par jazz matazz dans le forum VB.NET
    Réponses: 5
    Dernier message: 11/02/2006, 14h29
  4. [VB.Net]Comment recuperer un Control par le Type et le nom ?
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/12/2005, 11h10
  5. Comment subsituer un chemin par un autre dans un réseau ?
    Par Baillard dans le forum Développement
    Réponses: 3
    Dernier message: 11/08/2002, 14h01

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