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 :

Variable Chaîne pour variable de type Entier long


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Variable Chaîne pour variable de type Entier long
    Bonjour,
    Je suis un utilisateur de petit niveau de VBA pour Access 2003.
    Je souhaite vous exposer un problème qui ne semble pas directement résolvable par lecture des FAQ. Le voici :

    Dans un module de formulaire (nommé f), la valeur « X » prise, sur click, d’un contrôle groupe d’options (cases à cocher) est donné par l’expression :
    X = f![Sous-Formulaire]![Cocher]
    Il s’agit d’une variable définie par Access comme « Entier long ».
    Je souhaiterais utiliser cette écriture de variable en définissant le nom du sous-formulaire comme étant lui-même une variable. Il s’agit donc d’utiliser une variable de type chaîne faisant référence au sous-formulaire actif au moment du click.
    Je n’ai pas réussi à trouver l’écriture me permettant cela. Pouvez-vous m’aider ?

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Je ne suis pas sûr de tout comprendre, notamment
    X = f![Sous-Formulaire]![Cocher]
    et tout spécialement [Sous-Formulaire]

    Si j'ai bien compris, tu veux faire référence à la valeur donnée par ton groupe d'options nommé [Cocher] ???

    Dans du code, cela pourrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i as Integer
    i = Me.Cocher
    Dans lequel Me est une expression qui représente le formulaire courant...

    Si ces éléments ne répondent pas à ton problème, il faut que tu sois plus explicite.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    "Sous-formulaire" (pour l'exemple) est le nom du sous-formulaire du formulaire "f".
    "Cocher" est le nom du groupe d'option (pour l'exemple), contrôle membre du sous-formulaire "Sous-formulaire" .

    Pour tenter d'être plus explicite, voici un extrait du code utilisé :

    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
    38
     
    '...
    SFactes = f![TexteNameSF] 'donne le nom du SF ouvert pour le choix de l'acte (variable de type chaîne)
     
    Select Case SFactes
    Case "BD_Consultation base"
        ValGOActe = f![BD_Consultation base]![GoActe]
        Select Case ValGOActe
        Case 1 'consultation simple
            Act = "C": MontantCalculé = ActeC
        Case 2   'EcG
            Act = "C + K6.5": MontantCalculé = ActeC + 6.5 * ActK
        End Select
    Case "BD_Consultation au 1/10/03"
        ValGOActe = f![BD_Consultation au 1/10/03]![GoActe]
        Select Case ValGOActe
        Case 1 'consultation simple
            Act = "C": MontantCalculé = ActeC
        Case 2  'forfait pédiatrique
            Act = "C+FPE": MontantCalculé = ActeC + FPE
        Case 3   'EcG
            Act = "C + K6.5": MontantCalculé = ActeC + 6.5 * ActK
        End Select
    Case "BD_Consultation au 1/03/05"
        ValGOActe = f![BD_Consultation au 1/03/05]![GoActe]
        Select Case ValGOActe
        Case 1 'consultation simple
            Act = "C": MontantCalculé = ActeC
        Case 2 'majoration nourrisson
            Act = "C+MNO": MontantCalculé = ActeC + MNO
        Case 3  'forfait pédiatrique
            Act = "C+FPE": MontantCalculé = ActeC + FPE
        Case 4   'EcG
            Act = "C + K6.5": MontantCalculé = ActeC + 6.5 * ActK
        End Select
    Case "BD_Consultation au 15/04/06"
    ' etc 
    '...
    Le code (extrait) ainsi écrit fonctionne très bien.

    ValGoACte est une variable de type long (défini ainsi par access suivant la fonction VarType).

    Pour chaque situation de Select Case, il m'a fallu, pour la variable ValGoActe, écrire le nom du sous-formulaire activé.
    J'aurai souhaité pouvoir utiliser la variable SFactes (type Chaîne), qui donne le nom du sous-formulaire actif, pour la définition de ValGoActe. Je n'ai pas trouvé la syntaxe adaptée.

    Ceci est-il plus clair ?
    Merci pour la réponse.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    je pense que tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.Controls(SFactes).Form.GoActe
    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Cela fonctionne bien et permettra de simplifier le code.
    C'est l'occasion également de me familiariser avec les propriétés Controls et Form.
    Merci beaucoup pour cette réponse.

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

Discussions similaires

  1. déclaration de variable type entier
    Par OutOfRange dans le forum Langage
    Réponses: 5
    Dernier message: 08/07/2009, 22h43
  2. Requète pour remplacer une chaîne (avec variable)
    Par s-c-a-r-a dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/06/2009, 16h14
  3. Réponses: 15
    Dernier message: 30/11/2007, 15h36
  4. fonction qui indique qu'une variable est d'un type entier
    Par piotrr dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/06/2007, 16h05
  5. Calculer la longueur d'une variable de type entier
    Par juliendeparis dans le forum C
    Réponses: 13
    Dernier message: 08/06/2006, 13h44

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