Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 14h55   #1
Invité régulier
 
Homme
Architecte réseau
Inscription : décembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France, Allier (Auvergne)

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 11
Points : 6
Points : 6
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 :
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
m1koo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 20h29   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 08h26   #3
Invité régulier
 
Homme
Architecte réseau
Inscription : décembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France, Allier (Auvergne)

Informations professionnelles :
Activité : Architecte réseau
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 11
Points : 6
Points : 6
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 :
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
m1koo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 14h31   #4
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
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 :
"=" & """ 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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 18h38   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 10h46   #6
Membre du Club
 
Homme Rémi GAUDINAT
Inscription : juin 2010
Messages : 53
Détails du profil
Informations personnelles :
Nom : Homme Rémi GAUDINAT
Âge : 43

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 53
Points : 47
Points : 47
Envoyer un message via Skype™ à Rémi GAUDINAT
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 :
Form.Form_FormulaireEtats_Absences.Lbl_Titre.Caption = "Stock total" & " au " & Date
ou encore
Code :
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 ???
Rémi GAUDINAT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h33.


 
 
 
 
Partenaires

Hébergement Web