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 13/07/2011, 11h19   #1
Invité de passage
 
Étudiant
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 2
Points : 2
Par défaut Dysfonctionnement fonction Me.cboAnnee

Bonjour à tous,

J'ai cherché une solution sur plusieurs endroits de ce forum, incluant IHM, SQL et ici, la recherche et les tutoriels, néanmoins, où que j'aille voir mon code semble juste.
Il ne fonctionne pourtant pas.

Ce que je souhaite faire : "filtrer" une liste de réponse à l'aide d'une combo box contenant des valeurs d'années.
Une table T_ANNEE fournie les valeurs d'année à choisir et à filtrer dans les réponde de la table T_DEPENSE_RECETTE.
Voilà le morceau de code fautif :

Code :
1
2
3
4
5
 SQL = "SELECT T_DEPENSE_RECETTE.NUM_DEPENSE, T_INTITULE.INTITULE, T_REPARTITION.CLE_REPARTITION, T_ANNEE.ANNEE, T_CLASSE.NOM_CLASSE, T_SOUS_CLASSE.NOM_SOUS_CLASSE FROM T_SOUS_CLASSE INNER JOIN (T_REPARTITION INNER JOIN (T_INTITULE INNER JOIN (T_CLASSE INNER JOIN (T_ANNEE INNER JOIN T_DEPENSE_RECETTE ON T_ANNEE.NUM_ANNEE = T_DEPENSE_RECETTE.NUM_ANNEE) ON T_CLASSE.NUM_CLASSE = T_DEPENSE_RECETTE.NUM_CLASSE) ON T_INTITULE.NUM_INTITULE = T_DEPENSE_RECETTE.NUM_INTITULE) ON T_REPARTITION.NUM_REPARTITION = T_DEPENSE_RECETTE.NUM_REPARTITION) ON T_SOUS_CLASSE.NUM_SOUS_CLASSE = T_DEPENSE_RECETTE.NUM_SOUS_CLASSE WHERE T_DEPENSE_RECETTE!NUM_DEPENSE <> 0 "
 'La requpete affichera les cinq champs choisi, de la table T_DEPENSE_RECETTE si la clé de la table (NUM_DEPENSE) est différent de 0
 If Not Me.chkAnnee Then
    SQL = SQL & "And T_ANNEE!ANNEE = '" & Me.cboAnnee & "' "
    'SQL = SQL & "And T_ANNEE!ANNEE = 2009 "
Vous noterez le subtil code de test :

Code :
SQL = SQL & "And T_ANNEE!ANNEE = 2009
Qui lui par contre, fonctionne parfaitement.
Aussi si je retire le ' et que je mets mon autre code avec le "Me.cboAnnee" en commentaire, le requête fonctionne, et je n'ai que des réponses concernant l'année 2009.
Merci d’avance pour toute réponse constructive
Zakham est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 13h58   #2
Membre actif
 
Inscription : décembre 2009
Messages : 204
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 204
Points : 186
Points : 186
Code :
SQL = SQL & "And T_ANNEE!ANNEE = '" & Me.cboAnnee & "' "
Tu compare un champ de type numérique avec une chaîne de caractères.
Essayes sans les guillemets.

Code :
SQL = SQL & "And T_ANNEE!ANNEE = " & Me.cboAnnee
tarnx est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 14h26   #3
Invité de passage
 
Étudiant
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 2
Points : 2
Déjà merci pour la proposition.

J'avais déjà essayé de retirer les guillemets et de les déplacer sans vraiment savoir ce que je faisais.
Il ne m'était pas venu à l'idée un problème de compatibilité de types...

Malheureusement, ça ne fonctionne pas non plus.
J'ai d'autres champs à comparer qui comparent des chaînes de caractère avec des chaines de caractère et cela ne fonctionne pas non plus.

P.-S. Je ne sais pas si ça peut aider quelqu'un, mais je me suis fortement inspiré du tutoriel de Caféine. À ceci près que j'utilise plusieurs tables.
Zakham est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h37   #4
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

A tout hasard, vérifier la colonne liée de la Liste afin d'être certain qu'elle vous renvoie bien la donnée Année ... ou ajouter un petit

Msgbox Me.cboAnneeBcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 14h54   #5
Invité de passage
 
Étudiant
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 2
Points : 2
Hum, merci pour le coup du Msgbox, je me demandais hier comment on faisait pour avoir l'équivalent d'un "printf" sur Access...

Effectivement le "cbo.Annee" me renvoi la clé et non l'année.
Je vais me penché sur le problème plus en détail pour voir comment je peux tourner la solution.

Merci bien !

Je reviendrais poster quand j'aurai tout les détails et que ça fonctionnera (sans oublier de mettre le "résolu").

Bon ben j'édite ce message pour ne pas faire de double post:

J'ai juste changé une minuscule ligne et cela fonctionne :

Code :
1
2
If Not Me.chkAnnee Then
    SQL = SQL & "And T_ANNEE!NUM_ANNEE = " & Me.cboAnnee
Merci bien !
Zakham est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h57   #6
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Il vous suffit de changer le numéro de colonne dans la propriété Colonne liée de votre liste ...

Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h02.


 
 
 
 
Partenaires

Hébergement Web