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 :

placer une valeur dans un champs selon la sélection dans un formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut placer une valeur dans un champs selon la sélection dans un formulaire
    Bonjour,


    Voilà mon problème
    Je voudrais affecter au champs "Code_service " une valeur qui dépend du numéro de chambre choisi.
    exemple:
    si je sélectionne dans ma liste déroulante 'H431/1' ou 'H432/1' ou 'H433/1' je voudrais que Code service prenne la valeur 1.
    si je sélectionne dans ma liste déroulante 'G111/1' ou 'G112/1' ou 'G113/1' je voudrais que Code service prenne la valeur 3
    si je sélectionne dans ma liste déroulante 'D421/4' ou 'D422/3' ou 'd433/1' je voudrais que Code service prenne la valeur 4

    En espérant trouver de l'aide, je vous remercie d'ores et déjà

    Raphael

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 349
    Points
    34 349
    Par défaut
    Salut,
    dans l'évènement Après changement, tu pourras utiliser la méthode VBA

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Autre méthode sans VBA

    A partir de ton formulaire en mode création, tu peux utiliser le controle "Bouton Bascule" qui te permet d'affecter une valeur en fonction du bouton cliqué

    Peut-être plus simple si tu ne connais pas le VBA, par contre si tu manipules VBA la méthode de jpcheck est une excellente approche

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    merci pour vos réponses ...
    Le problème est que je ne sais pas faire de comparaisons avec autant de numéros de chambre..
    J'ai 20 chambres qui commencent par H4 dont le format est par ex H431/1 ou h435/3 et pour le service H4 il faut attribuée le code 1 puis 30 lits de C232/1 du service C2 code du service 3 et même format
    Donc avec sélect case comment faire pour comparer uniquement les deux premiers caractères du champs chambre
    Merci a vous

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Si je ne dis pas de bêtise, tu peux utiliser la fonction "left", qui prend autant de caractères que tu veux, en partant de la gauche du mot, autrement dit du début.

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    peux tu m'en dire plus?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select case N°CHAMBRE
                        case"H4"
                            CodeService="1"
                        Case "C2"
                            CodeService="3"
     
             End Select

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Dans ton cas ça donnerait quelque chose comme

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     SELECT LEFT([tonChamp], 2) AS nomDeVariable, CASE nomDeVariable
    WHEN "H3" THEN ...
    ...
    END
    FROM TaTable


    le premier argument de la fonction left représente la chaine que tu veux couper (en l'occurence tes champs "h341/1" par exemple), et le deuxieme indique combien de caracteres tu veux garder. Ici, tu garderas donc les deux premiers caractères en partant de la gauche, soit "h3".

    J'ai par contre un petit doute sur la syntaxe SQL, renseigne toi quand même

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    en Visual Basic pour office?

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Hum.. J'aurai utilisé une requête SQL dans le VBA.. Maintenant, je débute aussi, donc...

    J'ai juste eu cette idée, ce n'est peut-être pas la bonne ^^'

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Je vais y regarder de plus près,
    de toute manière, je te remercie pour ton aide
    Raph

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    voila mon code
    Comme suggéré plus haut je l'ai placé dans l'évenement 'sur changement' mais je n'arrive pas a placer le résultat dans mon champs qui se trouve dans T_GENERALE et qui se nomme Code_service

    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 Sub Numéro_de_Chambre_Change()
        Dim testchambre As String
        testchambre = Left([INDEX_NUM_CHAMBRE], 2)
     
        Select Case testchambre
            Case testchambre = "H4"
                [T_GENERALE]![Code_service] = "1"
            Case testchambre = "G4"
                [T_GENERALE]![Code_service] = "2"
            Case testchambre = "D3"
                [T_GENERALE]![Code_service] = "3"
        End Select
     
     
     
     
    End Sub
    merci pour votre aide

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2009
    Messages : 98
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par krakov Voir le message
    Hum.. J'aurai utilisé une requête SQL dans le VBA.. Maintenant, je débute aussi, donc...

    J'ai juste eu cette idée, ce n'est peut-être pas la bonne ^^'
    Bonjour
    Pour rebondir sur cette piste. Faire une table (ou completer la table actuelle) avec la correspondance voulue, ainsi pas de limite et surtou evolutive simplement.
    Puis 2 possibilites/
    * Faire un dlookup, mais ce n'est pas pertinent car cela alourdit le code et la souplesse.
    * Faire une requete qui remplit la liste (2 colonnes, la premiere non visible, la seconde visible). La colonne liee sera la 1 (la colonne non visible). Lorsque l'utilisateur choisi quelquechose, alors la liste fourni directement la valeur de correspondance.
    J'espere que cela aidera

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    merci pour ton aide mais je n'ai pas compris...
    désolé, je suis novice
    Peux tu m'en dire plus?

    Merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/07/2015, 11h36
  2. [AC-2003] Supprimer une ligne d'un tableau selon la sélection dans une liste
    Par Evolvana dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/08/2011, 09h25
  3. [AC-2003] inserer une valeur dans un champ selon le titre d'un fichier
    Par maestro_972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/10/2009, 15h46
  4. mettre une valeur a un champs dans un onglet..
    Par Fritzoune dans le forum Access
    Réponses: 2
    Dernier message: 03/03/2006, 14h33
  5. valeur d'un champ pour l'utiliser dans une requete
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 08/04/2005, 16h58

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