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 :

vba access 97, XP, différence de syntaxe


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Par défaut vba access 97, XP, différence de syntaxe
    Bonjour, j'ai repris de l'ancien code de mon prédécesseur et je ne suis pas assez habitué au vb pour trouver la réponse à certaines choses.
    J'ai donc repris de l'ancien code, fait avec vba pour access97, après avoir fait la conversion en Access XP , avec plus ou moins du mal (erreur de procédure trop longue, ....).
    J'arrive sur des éléments surement très simple, mais donc je voudrais être sûr.
    Actuellement, le compilateur plante sur l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.[A01P01Left] > 0 Then
    dans la même routine et à plusieurs endroits on trouve des choses comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Me![A01P01].Top = Me.[A01P01Top] - 120
    If Me.[A02P01Left] > 0 Then
        Me![A02P01].Left = Me.[A02P01Left] - 140
        Me![A02P01].Top = Me.[A02P01Top] - 120
    en corrigeant Me.[A01P01Left] en Me.[A01P01].Left, je n'ai plus d'erreur à cet endroit, j'imagine donc que cette écriture n'est donc plus valide en vba XP.

    ma première question est assez simple, au niveau syntaxe:
    - Me![A02P01].Left et Me.[A02P01Left], représentent-ils la même chose ??
    il y a même plus loin Me![A01P01]!Left
    je pense que le mieux est d'uniformiser le tout, je voudrais donc savoir lequel et le plus efficace et pourquoi ?

    en fait, clairement, y-a-t-il une différence entre Me! et Me., car ils paraissent être indifféremment utilisés l'un comme l'autre ?

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

    en fait, clairement, y-a-t-il une différence entre Me! et Me., car ils paraissent être indifféremment utilisés l'un comme l'autre ?
    De base, le ! est réservé aux données et le . est réservé aux propriétés et méthodes d'un objet.

    Cependant, beaucoup de développeurs utilisent le . pour accéder aux données car Access le permet mais c'est dommage que cette aberration soit ainsi car cela prête à confusion, la preuve...

    Ainsi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![CodeClient] = Me.[CodeClient]
    Il y a cependant des exceptions :
    ne peut recevoir le !

    Pour ton cas, la propriété Left (autant que toutes les propriétés corrélatives) doit être exprimée ou affectée avec un point.

    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Par défaut
    merci,
    donc "!" pour les données et "." pour attributs et méthodes, ça me semble clair,
    je vais donc nettoyer tout ça

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Par défaut
    pour information, les contrôles d'un formulaire sont des données, ou des propriétés ?

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    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 134
    Billets dans le blog
    5
    Par défaut
    Les contrôles de formulaire sont des objets qui possèdent des méthodes, des propriétés et des événements ; ils reçoivent ou non des données qu'ils soient liés ou non à un champ de table et directement par :
    Champ représente le nom du contrôle.

    Le nom du contrôle peut-être différent du nom du champ.

    Lorsque tu veux affecter une propriété à un contrôle, tu peux écrire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Private Sub Champ1_GotFocus()
        Me.[Champ1].BackColor = RGB(255, 0, 0)
    End Sub
     
    Private Sub Champ1_LostFocus()
        Me.[Champ1].BackColor = Me.[Champ2].BackColor
    End Sub
    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

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Par défaut
    merci de tes réponses éclairés, ce sont des distinctions bien importantes que je ne connaissais pas en vb, j'avais déjà pré senties qu'un bon nettoyage aller être indispensable pour remettre du clair dans ce code.

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

Discussions similaires

  1. [AC-2007] Syntaxe SQL en VBA ACCESS (Recordset ADODB)
    Par syntax_error dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/02/2011, 11h10
  2. [vba access] Syntaxe avec openrecordset
    Par bobinho dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/08/2007, 12h09
  3. Réponses: 4
    Dernier message: 16/04/2005, 16h54
  4. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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