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 :

Attribuer une valeur en fonction d'une sélection dans une liste [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut Attribuer une valeur en fonction d'une sélection dans une liste
    Bonjour,

    J'ai une table : "Produits"

    Dans ma table "Produits", j'ai un champ "Partenaires" qui est une liste de sélection générée par une table externe (Nommée : Liste des Partenaires).

    Dans ma table "Produits", j'ai un champ "% de commission" qui est le % que le partenaire va toucher. Ce % peut varier en fonction du partenaire.

    Pour le moment, je sélectionne dans la liste le partenaire et j'indique manuellement le %.

    J'aimerais automatiser le %. Qu'il s'indique automatiquement en fonction du partenaire sélectionné.

    PS : Je n'ai que des bases d'access

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Points : 175
    Points
    175
    Par défaut
    Bonjour

    Il faut que tu ais l'information du % dans la table partenaire.

    Ensuite lorsque tu réalises ta liste "Liste des Partenaires" il faut mettre 2 champs :
    colonne 1 : "Partenaire"
    colonne 2 :"%" (Attention ne nomme pas le champs % car le symbole % est peut-être un carractère réservé)

    Supposons que dans la table produit le partenaire corresponde au champ "ParteProduit" et le % corresponde à PourcProduit

    Aprés mise à jour de "Liste des Partenaires" il faut inscrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    me.ParteProduit = me.Liste des Partenaires.column(0)
    me.PourcProduit = me.Liste des Partenaires.column(1)
    A vue de nez cela devrait fonctionner. Bon courage

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par JeanYves70 Voir le message

    Aprés mise à jour de "Liste des Partenaires" il faut inscrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    me.ParteProduit = me.Liste des Partenaires.column(0)
    me.PourcProduit = me.Liste des Partenaires.column(1)
    Bonjour,

    Merci de ta réponse mais j'ai un problème.

    En mode feuille de donnée la table : "Produits"

    Partenaires => Liste de choix qui fait référence à une table
    Pourcentage de Com => %

    En mode création la table :"Liste des Partenaires" donne :
    1) N° => NuméroAuto
    2) Partenaire =>Texte
    3) Pourcentage de Com => Numérique ; Réel simple ; Pourcentage

    J'ai supprimé ma première liste et j'en ai recréé une avec en 1ère colonne : "Partenaire" et en 2ème colonne : "Pourcentage de Com"

    La ou est mon problème c'est que je ne vois pas (ni comment) ou je dois venir indiquer le code que tu m'as donné.

    En mode création ?
    En mode feuille de données ?
    Ou je dois passer par un autre endroit ?

    Je ne sais pas si cela à de l'importance, mais je ne travail pas dans un formulaire mais directement de la table en feuille de donnée.

    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    Mon explication convient pour un formulaire sur lequel tu peux programmer des macros ou procèdure sur différents évènements. Dans le cas présent c'est "aprés mise à jour" du champ contenant le partenaire.

    Visiblement tu fais une utilisation d'ACCESS à la EXCEL et en travaillant directement sur la table je ne pense pas qu'il soit possible de programmer de telles macros ou procèdure.

    L'avantage d'ACCESS c'est justement de pouvoir faire ce type de programmation.

    En espérant avoir répondu.

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Malheureusement non tu n'as pas répondu.


    Oui, je fais l'encodage directement dans la table et non dans un formulaire.

    Comment devrais-je procéder alors ? Comme je l'ai dis je suis très novice dans access...

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 64
    Points : 86
    Points
    86
    Par défaut
    Sinon tu peux faire ceci :

    Tu créer un formulaire (Dont les actions s'effectueront en mode formulaire)

    Dans ta table partenaires, est ce qu'il y à un champ de type ID_partenaire permettant de référencer le partenaire ?

    Si oui, tu ajoutes à ton formulaire une zone de texte, puis une liste déroulante dans laquelle tu met en première colonne l'index (ID_partenaire) et en deuxième colonne tu met NomPartenaire.

    Tu récupères l'ID du partenaire avec le bout de code de jean-yves

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_partenaire = me.Liste des Partenaires.column(0)
    Puis tu recuperes le pourcentage du partenaire en faisant une requete sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim query_sql As String
    dim rs As Recordset
    dim pourcent_partenaire As Integer
    query_sql = "SELECT PourcentPartenaire FROM Partenaires WHERE Id_partenaire = " & id_partenaire & ";"
    Set rs = CurrentDb.Openrecordset (query_sql)
    pourcent_partenaire = rs("PourcentPartenaire")
    Ensuite tu met a jour ta zone de texte en fonction du pourcentage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Texte0.Value = pourcent_partenaire

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Gregk84 Voir le message
    Bonjour,

    J'ai une table : "Produits"

    Dans ma table "Produits", j'ai un champ "Partenaires" qui est une liste de sélection générée par une table externe (Nommée : Liste des Partenaires).

    Dans ma table "Produits", j'ai un champ "% de commission" qui est le % que le partenaire va toucher. Ce % peut varier en fonction du partenaire.

    Pour le moment, je sélectionne dans la liste le partenaire et j'indique manuellement le %.

    J'aimerais automatiser le %. Qu'il s'indique automatiquement en fonction du partenaire sélectionné.

    PS : Je n'ai que des bases d'access

    Merci
    Salut
    tn problèm n'est pas très compliqué
    crée sur partenaire un evenement on exit()
    tu met ceci dans ton code:

    Private Sub PARTENAIRE_Exit(Cancel As Integer)
    Dim wPOURCENTAGE As String

    If IsNull(Me!PARTENAIRE) Then
    Else
    Set db = CurrentDb
    Set rs = db.OpenRecordset("LISTEDEPARTENAIRE", dbOpenDynaset)
    rs.MoveFirst

    Do While rs.EOF = False
    If UCase(Me!PARTENAIRE) = UCase(rs.Fields("PARTENAIRE").Value) Then
    Me!POURCENTAGE = UCase(rs.Fields("POURCENTAGE").Value)
    End If
    rs.MoveNext
    Loop
    rs.Close
    End If
    End Sub

    je crois que ca va t'aider. désolé pour la form, je suis nouveau

  8. #8
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Merci à tous les 3

    J'ai bidouillé pas mal de temps pour essayer d'intégrer un formulaire dans un formulaire et j'y suis finalement arrivé youhouuuu.

    Cela fonctionne quand je procède avec deux formulaires et la méthode de : JeanYves70

    Les 2 autres méthodes me semble bcp trop compliquée à mettre en place vu mon niveau...

    Je vais donc recommencer mon 1er formulaire ...

    Merci à tous

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

Discussions similaires

  1. [XL-2007] USF récupérer dans une valeur en fonction d'un choix dans une liste (Combobox)
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/07/2015, 15h48
  2. Réponses: 2
    Dernier message: 16/04/2015, 12h00
  3. Réponses: 6
    Dernier message: 09/05/2014, 17h23
  4. Charger une Combobox en fonction de la sélection d'une autre
    Par CARNIBAL dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 17/09/2010, 10h49
  5. Réponses: 3
    Dernier message: 22/03/2008, 11h48

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