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 entre crochet ou non


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut Variable entre crochet ou non
    Bonjour,

    lorsque j'appelle une procédure j'utilise la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Heure2(Forms!FrmChauffeur!SfrmFiche![Date], Forms!FrmChauffeur!SfrmFiche![H_Depart], Forms!FrmChauffeur!SfrmFiche![H_Arrivee], [T], [TJ], [TN])
    en fait j'appelle la procédure Heure2, j'utilise des données saisies dans le formaires avce les champs [Date],[H_Depart],[H_Arrivee], je fais des calculs dans cette procédure et ensuite
    [T],[TJ],[TN] sont des variables de retour, pour ensuite faire d'autres actions avec ces variables

    mais si je mets sans les crochets T,TJ,TN, cela fonctionne aussi,

    alors à quoi servent les crochets?

    et quand doit-on les utiliser en vba, est-ce nécessaire ou non?


    merci

    Pascal

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Regarde ceci : Guide sur la syntaxe des expressions
    Et en particulier les parties «Objets, collections et propriétés» et «Identificateurs».

    Concernant des variables purement VBA, je crois que les crochets ne servent pas.
    Je ne m'en suis jamais servi sur des variables VBA.
    Je me sert des crochets uniquement dans le cadre des expressions décrites dans l'article cité en lien.

    A+

  3. #3
    Membre émérite
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Par défaut
    Concernant des variables purement VBA, je crois que les crochets ne servent pas.
    Oh non non non, car les variables VBA ne sortent jamais de chez elles ! elles n'ont jamais besoin d'un tel habit car elles savent fort bien se tenir sans le moindre espace ni caractère olé olé en elles ! Ce qui n'est pas le cas de ces objets étranges et étrangers que sont les entités de bases de données ou autres objets, invités du code qui ont parfois une certaine propension à se laisser aller, que rien ne réprouve et qu'il faut bien contenir !

  4. #4
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Je suis d'accord sur l'inutilité de mettre une variable VBA entre crochets.
    Il n'en demeure pas moins que le compilateur les accepte, ce qui rend la question de Pago283 légitime.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TestBrackets()
    Dim sMaVar As String
     
    [sMaVar] = "un"
    Debug.Print sMaVar, [sMaVar]
     
    sMaVar = "deux"
    Debug.Print sMaVar, [sMaVar]
     
    End Sub
    Je ne sais pas comment le compilateur interprète [sMaVar] = "un".
    Je constate seulement que le résultat est identique à l'instruction sMaVar = "deux".
    Dans les deux cas j'ai bien affecté une valeur à la même variable, avec deux syntaxes.

    J'en conclu que les crochets sont inutiles, mais je ne sais pas comment le compilateur résout [sMaVar].
    Est-ce qu'il ignore purement et simplement les crochets ?
    Est-ce qu'il estime que c'est une expression qu'il résout en déterminant que c'est une variable ?

    Tu vois pourquoi je n'étais pas affirmatif ?

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    merci pour ta réponse, qui m'enlève un doute,


    par contre ce que j'ai trouvé en surfant c'est que si tu voulais utiliser un mot clé vba genre string comme nom de variable, dans ce cas tu devrais la mettre entre crochet, ou bien si tu as par exemple un nom de champ qui a un espace...

    amicalement

    Pascal

  6. #6
    Membre émérite
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Par défaut
    Tu vois pourquoi je n'étais pas affirmatif ?
    Tu as absolument raison. J'ai testé cette syntaxe pour la première fois depuis de nombreuses années, sous Access 97 de plus, et cela fonctionne sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ee as long
    [ee]=10
    Deug.Print ee
    Par contre
    Génère un message à la compilation.

    J'en déduis que le compilateur, au niveau de l'extraction du token cherche à résoudre les crochets d'emblée pour déterminer un nom d'entité. Ce qui ne manque pas de logique. Le test pour déterminer s'il s'agit d'une variable Basic est effectué ensuite.

    D'ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        [If] ee = 10 Then
        [Do]
        [Loop]
    Sont valides, mais sont remplacés tout de suite par la forme légale.

    Ne m'en veux pas d'avoir tourné ceci en blague. Il est difficile de passer après toi en ajoutant quelque chose ! tu m'en donnes encore la preuve et cela me donne l'occasion de te dire que j'apprécie généralement le sérieux et l'imaginatif des réponses que tu fais ici. Ah oui, et puis aussi que j'ai toujours préféré le III

  7. #7
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par mumen Voir le message
    Ne m'en veux pas d'avoir tourné ceci en blague.
    Pas de danger
    Je voulais juste clairement justifier pourquoi je n'étais pas catégorique dans ma réponse.

    Citation Envoyé par mumen Voir le message
    cela me donne l'occasion de te dire que j'apprécie généralement le sérieux et l'imaginatif des réponses que tu fais ici
    Le sérieux je suis d'accord. L'imagination non, une grosse expérience je dirai.
    Au passage, merci pour le compliment. C'est toujours bon à prendre.
    Je souligne à mon tour, la qualité de tes réponses. On sent que tu es un développeur.
    Ce n'est pas le cas de tous ceux qui postent, sans vouloir offenser personne.

    Citation Envoyé par mumen Voir le message
    Ah oui, et puis aussi que j'ai toujours préféré le III
    La nous sommes en désaccord
    Non, je les aime tous, mais le côté un peu plus blues du II me plaît bien.
    Et pis ça me faisait un pseudo moins long.

    A+ sur le forum

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/01/2007, 20h36
  2. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25
  3. [recuperation de variable entre 2 jsp]
    Par maya5 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/06/2004, 13h23
  4. [XSLT] Variable par défaut ou non dans un 'IF'
    Par Johnbob dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2004, 17h00
  5. Types de variables entre mysql/php et flash
    Par ramses83 dans le forum Flash
    Réponses: 2
    Dernier message: 06/10/2003, 18h35

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