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

Access Discussion :

Mauvaise synthaxe VBA


Sujet :

Access

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut Mauvaise synthaxe VBA
    Bonjour à tous,

    J'ai dans un formulaire mis ce code:

    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
    Private Sub Form_Dirty(Cancel As Integer)
       Dim volume_total As Integer
     
       If opt_camion = True Then
          volume_total.Value = 96.48
          opt_conteneur_dry = False
          opt_conteneur_vingt = False
          opt_conteneur_hc = False
          Texte33.Value = 96.48
     
       ElseIf opt_conteneur_dry = True Then
          volume_total.Value = 59.92
          opt_conteneur_hc = False
          opt_conteneur_vingt = False
          opt_camion = False
          Texte33.Value = volume_total
     
       ElseIf opt_conteneur_hc = True Then
          volume_total.Value = 68.24
          opt_conteneur_dry = False
          opt_conteneur_vingt = False
          opt_camion = False
          Texte33.Value = volume_total
     
       ElseIf opt_conteneur_vingt = True Then
          volume_total.Value = 30.99
          opt_conteneur_dry = False
          opt_conteneur_hc = False
          opt_camion = False
          Texte33.Value = volume_total
       Else
          volume_total.Value = 0
       End If
     
    End Sub
    Sauf que ça ne marche pas, le texte33 ne prend jamais la valeur demandée et je ne comprends pas pourquoi... Vous pouvez m'éclairer?
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    j'imagine que tu obtiens 0 à chaque fois, c'est cela ?

    Si oui c'est parce qu'aucune des condition n'est vraie.

    Met un point d'arrêt au début de ta procédure et vérifie des données.

    En passant je te recommande de changer Texte33 pour un nom plus significatif comme AffVolumeTotal ou quelque chose qui te permets de savoir ce qu'il contient.
    Cela facilite la maintenance et la compréhension du code.

    A+

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Merci Marot pour ta réponse. Alors je n'obtiens même rien du tout. Le champs reste vide....
    Merci du conseil pour Texte33 !

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_Dirty(Cancel As Integer)
    Hum, probablement que cet événement ne se déclenche jamais. Essaye avec Après MAJ.

    A+

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    C'est déjà le cas... Je ne comprends pas, ça n'a pourtant pas l'air compliqué... J'ai essayé en l'affectant à un bouton, et ça ne marche pas non plus...

  6. #6
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Points : 10 334
    Points
    10 334
    Par défaut
    Bonjour,

    Tu as essayé avec différents jeux de données, enfin en essayant différentes configurations au niveau de tes conditions ?

    Et surtout lorsque tu test, es-tu sûr qu'une de tes conditions est vraie ?


    Car lorsqu'aucune de tes conditions n'est vraie, tu assigne bien la valeur 0 à ta variable :

    par contre, ensuite, tu n'assigne pas cette variable à Text33.value comme dans les autres branches du IF, c'est peut-être pour cela que ton champs reste vide ?


    Sinon essais de joindre ton fichier (en enlevant les données sensibles), que l'on puisse regarder ce qui se passe.

  7. #7
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Alors oui oui j'ai bien vérifié que je cochais une case:
    Nom : Sans titre.png
Affichages : 155
Taille : 16,8 Ko

    Avec toujours ce code, légèrement modifié par rapport au début:
    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
    Private Sub Form_Dirty(Cancel As Integer)
    Dim volume_total As Integer
    volume_total = 0
    If opt_camion = True Then
    volume_total = 96.48
    affichage_volume_camion.Visible = True
    Aff_volume_vehicule.Value = 96.48
     
    ElseIf opt_conteneur_dry = True Then
    volume_total.Value = 59.92
    opt_conteneur_hc = False
    opt_conteneur_vingt = False
    opt_camion = False
    Aff_volume_vehicule.Value = volume_total
     
    ElseIf opt_conteneur_hc = True Then
    volume_total.Value = 68.24
    opt_conteneur_dry = False
    opt_conteneur_vingt = False
    opt_camion = False
    Aff_volume_vehicule.Value = volume_total
     
    ElseIf opt_conteneur_vingt = True Then
    volume_total.Value = 30.99
    opt_conteneur_dry = False
    opt_conteneur_hc = False
    opt_camion = False
    Aff_volume_vehicule.Value = volume_total
    Else: volume_total.Value = 0
    Aff_volume_vehicule = volume_total
    End If
    End Sub
    Je vous mets la base en PJ.
    Nouveau dossier.zip

  8. #8
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Points : 10 334
    Points
    10 334
    Par défaut
    Alors :

    déjà, Est-ce normal que sur ton formulaire cela soit :

    - affichage_volume_total alors que dans le code c'est volume_total ?

    - Aff_volume_camion alors que dans le code, on trouve Aff_volume_vehicule et Aff_volume_camion ?


    Si je mets ce code dans le bouton en dessous tes optionButton, cela a l'air de fonctionner.

    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
     
    Dim volume_total As Integer
    affichage_volume_total = 0
    If opt_camion = True Then
    affichage_volume_total = 96.48
    Aff_volume_camion.Visible = True
    Aff_volume_camion.Value = 96.48
     
    ElseIf opt_conteneur_dry = True Then
    affichage_volume_total.Value = 59.92
    opt_conteneur_hc = False
    opt_conteneur_vingt = False
    opt_camion = False
    Aff_volume_camion.Value = affichage_volume_total
     
    ElseIf opt_conteneur_hc = True Then
    affichage_volume_total.Value = 68.24
    opt_conteneur_dry = False
    opt_conteneur_vingt = False
    opt_camion = False
    Aff_volume_camion.Value = affichage_volume_total
     
    ElseIf opt_conteneur_vingt = True Then
    affichage_volume_total.Value = 30.99
    opt_conteneur_dry = False
    opt_conteneur_hc = False
    opt_camion = False
    Aff_volume_camion.Value = affichage_volume_total
    Else: affichage_volume_total.Value = 0
    Aff_volume_camion = affichage_volume_total
    End If
    Bon après, ne connaissant pas le projet, peut-être que le code que j'ai modifié ne correspond plus au besoin initial, mais le nombre s'affiche...



    D'ailleurs, tu test tes optionButtons avec un IF Then Else, mais il est possible d'en sélectionner plusieurs à la fois, cela ne risque-t-il pas de poser problème également ?

  9. #9
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    J'ai modifié le nom des champs, mais ça ne fonctionne pas mieux... Je désespère! J'ai mis le code dans l'événement après MAJ du champs affichage_volume_total mais ça ne fonctionne pas non plus. De même si j'affecte à chaque option d'afficher le volume s'il est coché...
    Pour le fait de pouvoir en cocher plusieurs à la fois, j'ai prévu de bloquer cette possibilité une fois ce problème résolu.

  10. #10
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Points : 10 334
    Points
    10 334
    Par défaut
    Citation Envoyé par mmarpaud Voir le message
    J'ai modifié le nom des champs, mais ça ne fonctionne pas mieux... Je désespère!
    Pourtant moi avec le code ci-dessus, j'ai bien le champ texte qui se remplit...


    Citation Envoyé par mmarpaud Voir le message
    J'ai mis le code dans l'événement après MAJ du champs affichage_volume_total mais ça ne fonctionne pas non plus. De même si j'affecte à chaque option d'afficher le volume s'il est coché...
    Attention je viens de remarquer également, que c'était une zone de liste et non une zone de texte que tu avais mis pour afficher ton volume total, j'ai placé une nouvelle zone de texte en-dessous, et idem, j'ai bien l'affichage :

    Nom : DVP_access.jpg
Affichages : 122
Taille : 47,7 Ko


    Par contre, je lance bien la macro à partir du click sur le bouton en dessous de la liste des véhicules pour le moment, pas sur un évènement change.

    Mais je pense que tu devrais refaire un tour sur tous les contrôles de ton formulaire, et bien vérifier les noms et les types de ceux-ci déjà.

  11. #11
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup !! Ça marche enfin !!
    Pour la zone de liste oui je l'ai fait exprès, même si un Dlookup donnerait la même chose!

    Merci de votre aide, je me bats déjà avec quelque chose d'autre! La joie du code !!

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

Discussions similaires

  1. Pb synthaxe VBA
    Par Davik dans le forum VBA Access
    Réponses: 5
    Dernier message: 28/04/2010, 14h30
  2. [SQLLoader]Mauvaise synthaxe, Oracle9i, LinuxRedHat3
    Par Lucinda dans le forum Oracle
    Réponses: 3
    Dernier message: 08/02/2008, 14h56
  3. {VBA Excel}Probleme sur macro mauvaise lecture de feuille excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 15h38
  4. [VBA] AddNew dans la mauvaise table pourquoi ?
    Par dalmasma dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/07/2007, 10h28
  5. [SQL][VBA]Erreur de synthaxe .. opérateur abscent
    Par popof60 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/04/2007, 11h32

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