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 :

Erreur de compilation: Variable non définie


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 15
    Par défaut Erreur de compilation: Variable non définie
    Bonjour,

    Je suis sur une base de données de gestion des salariés et je me suis trés largement inspiré du tuto "Filtre par sélection dans formulaire, avec titres dynamiques et liaison avec état" de Jean-Damien GAYOT.
    Seulement, à la partie où j'assigne le bouton "Filtre tous" de mon formulaire à la fonction Filtre_Tous(), j'ai un message d'erreur qui m'affiche "Erreur de compilation: Variable non définie" pointant directement sur le nom de mon formulaire. Voici le 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
    '--------------------------------------------------------------
    'Afficher tous les enregistrements
    '------------------------------------------------------------
    Public Function Filtre_Tous()
       On Error GoTo Filtre_Tous_Err
        'Affiche tous les enregistrements
        DoCmd.ShowAllRecords
        'Met les 3 variables de colonnes à blanc
        Prénom = ""
        Nom = ""
        Dépôt = ""
        'Change le label Lbl_Titre
       Form_FormulaireEtats_Absences.Lbl_Titre.Caption = "Stock total" & " au " & Date
        'Change la zone de texte Txt_Total
        Form_FormulaireEtats_Absences.Txt_Total.ControlSource = _
        "=" & """ Le montant total du stock est de """ & "&" & "FormatCurrency(Sum([N°Absence]))"
    Filtre_Tous_Exit:
        Exit Function
    
    Filtre_Tous_Err:
        MsgBox Error$
        Resume Filtre_Tous_Exit
    End Function
    J'ai colorié en vert les endroits correspondant au message d'erreur.
    Etant débutant, j'ai essayé de trouver à quoi cela correspond mais je sèche complètement. J'ai bien assigné mes variables, l'orthographe de mon formulaire est le bon...

    Je vous remercie d'avance pour votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Si tu débutes il y a une précaution à prendre : rendre la déclaration des variables obligatoires.

    Donc il faut aller dans les options de l'éditeur de code et cocher 'Déclaration obligatoire des variables'.

    Si tu l'as fait tu dois voir Option Explicit en haut du code de ton module.

    Ensuite vérifie si Form_FormulaireEtats_Absences est bien orthographié.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 15
    Par défaut
    Je te remercie marot_r pour ta reponse mais j'ai bien mis Option Explicit dans mon module et le nom de mon formulaire est bien orthographié. En revanche faut-il déclarer le formulaire en tant que variable ? Voici la liste de mes variables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Compare Database
    Option Explicit
     
    Dim Nom As String 'variable sélection colonne "Nom" de la table Salariés
    Dim Prénom As String 'variable sélection colonne "Prénom" de la table Salariés
    Dim Dépôt As String 'variable sélection colonne "Dépôt" de la table Statuts

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Par défaut
    Question : si tu mets en commentaire la ligne n° 13 de ton programme, as-tu toujours une erreur de compil ? Et si oui cette erreur est-elle sur la ligne 15 ?

    A propos de cette ligne 15 d'ailleurs, je me suis "amusé" à mettre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=" & """ Le montant total du stock est de """ & "&" & "FormatCurrency(Sum([N°Absence]))
    dans une variable texte toute banale et quand j'en examine le contenu en debug.print, je vois ceci :

    =" Le montant total du stock est de "&FormatCurrency(Sum([N°Absence]))
    Es-tu sûr que c'est correct ?
    Michel

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Citation Envoyé par m1koo Voir le message
    En revanche faut-il déclarer le formulaire en tant que variable ?
    Non mais il faut parfois les assigner, voici comment je procède quand je veux utiliser un formulaire :

    dim f as form_NomTonForm:set f=forms("NomTonForm")
    debug.print f.name
    set f=nothing

    La collection Forms contient tous les formulaires ouverts.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 53
    Par défaut
    Bonjour,
    Es-tu réellement sûr que le nom de ton formulaire est bien "Form_FormulaireEtats_Absences" et non "FormulaireEtats_Absences" ?
    Sinon pour ma part j'emploierais plutôt au niveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form.Form_FormulaireEtats_Absences.Lbl_Titre.Caption = "Stock total" & " au " & Date
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Forms.item("Form_FormulaireEtats_Absences").Lbl_Titre.Caption = "Stock total" & " au " & Date
    Cherche sur le site ce tuto "Les syntaxes d'appel : Interaction des formulaires et états" par Fabrice CONSTANS.
    Sinon une question, pourquoi emploies tu une fonction plutôt qu'une procédure, puisque en définitive ta fonction ne te renvoie aucun résultat ???

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 8
    Par défaut
    j ai la mm erreur mais moi je debute dans acces donc je ne comprend pas tout marche j essaie de rentrer un test de doublon et la je me retrouve avec l errueur d etiquette !!
    au secours merci

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 8
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Si tu débutes il y a une précaution à prendre : rendre la déclaration des variables obligatoires.

    Donc il faut aller dans les options de l'éditeur de code et cocher 'Déclaration obligatoire des variables'.

    Si tu l'as fait tu dois voir Option Explicit en haut du code de ton module.

    Ensuite vérifie si Form_FormulaireEtats_Absences est bien orthographié.

    A+
    c 'est ou ????

Discussions similaires

  1. [XL-2010] Erreur de compilation : variable non définie sur un textbox
    Par Bricomachin dans le forum Excel
    Réponses: 4
    Dernier message: 12/04/2013, 11h56
  2. Erreur de compilation : Variable non définie
    Par Smallstone dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 12/07/2011, 08h32
  3. erreur compilation: variable non défini
    Par ngouagme dans le forum Langage
    Réponses: 8
    Dernier message: 07/07/2010, 15h38
  4. [AC-2003] Erreur de variable non définie
    Par piercleo dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/01/2010, 16h02
  5. erreur de compilation variable non defini
    Par nabelou1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/01/2009, 16h43

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