Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 23/02/2011, 21h46   #1
Membre du Club
 
Emmanuel
Inscription : novembre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Emmanuel

Informations forums :
Inscription : novembre 2010
Messages : 49
Points : 66
Points : 66
Par défaut Problème déclaration variables

Bonsoir tout le monde.

J'ai un problème récurrent chez moi : les variables.

Code :
1
2
3
4
5
6
7
    Dim Nob As Variant
    Dim MonMois As String
 
 
    Nob = DMax("[N°]", "[QLivraisons]")
    MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°] = Nob")
    MsgBox MonMois
Ce code ne fonctionne pas, il génére une erreur 2471 avec ce message :

L'expression entrée comme paramètre de requête est à l'origine de l'erreur suivante : Nob

La variable semble bien déclarée (enfin je crois) puisqu'elle retourne la valeur souhaitée mais le fait d'insérer la variable Nob dans la fonction DLookup() bloque tout. Y a t-il une écriture particulière pour insérer une variable dans DLookup() ?

Par le passé, j'ai connu plusieurs fois ce pb. Je voudrais vraiment comprendre ce que j'ai mal fait.

Merci d'avance.
Dixies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 21h53   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Si ta variable Nob est du type entier long ou numérique :

Code :
1
2
3
4
5
6
Dim Nob As long
Dim MonMois As String
 
Nob = DMax("[N°]", "[QLivraisons]")
MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°]=" & Nob)
MsgBox MonMois
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/02/2011, 16h20   #3
Membre du Club
 
Emmanuel
Inscription : novembre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Emmanuel

Informations forums :
Inscription : novembre 2010
Messages : 49
Points : 66
Points : 66
Bonsoir, .... et me voici de retour !

Merci User pour ta réponse, effectivement ton code fonctionne beaucoup mieux que le mien.
Cela dit, peux-tu m'expliquer pourquoi il faut mettre la variable à l'extérieur des guillemets ?
Et autre question, comment fait-on avec une fonction ?
Explications :

Je voudrais connaitre le mois (en chiffre). Dans mon code, la variable MonMois me retourne le mois en lettre.

Code :
1
2
3
4
5
6
7
8
9
10
Dim Nob As long
Dim MonMois As String
Dim MonMoisChiffre as long
 
 
Nob = DMax("[N°]", "[QLivraisons]")
MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°]=" & Nob)
MonMoisChiffre = Month(MonMois)
 
MsgBox MonMois & "  " & MonMoisChiffre
Et là j'ai aussi une erreur dans ma fonction Month().
Quelle est la syntaxe ?

Merci pour l'info.
Dixies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 00h25   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

I - Pourquoi mettre la variable à l'extérieur des guillemets ?

Code :
MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°]=" & Nob)
Si tu mets la variable Nob à l'intérieur des guillemets Access va chercher un nom de champ pour 1 table ou 1 paramètre interne à une requête, en mettant la variable à l'extérieur cela permet de transmettre la valeur de la variable dans la condition, du style :

si Nob=1:

Code :
MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°]=" & Nob)
équivaut à :

Code :
MonMois = DLookup("[Mois]", "[QLivraisons]", "[N°]=1")

II - Pour la fonction du mois

Essaie ceci :

Code :
MonMoisChiffre = Format(MonMois & " 2011","mm")
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 15h50   #5
Membre du Club
 
Emmanuel
Inscription : novembre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Emmanuel

Informations forums :
Inscription : novembre 2010
Messages : 49
Points : 66
Points : 66
Bonjour User,

Merci pour cet éclaicissement concernant les variables, je comprends un peu mieux certaines erreurs que j'ai commises jusque là.
Quant à la fonction du mois, ça fonctionne à merveille.

Ce site ainsi que ce forum sont une mine d'or.
Merci à tous ceux qui les entretiennent et à vous développeurs qui passaient du temps à nous dépanner.
Merci à toi User pour ce coup de main.

Soyons clair sans vous tous, j'aurais été parfaitement incapable de mettre au point mon application.

A bientôt.
Dixies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 23h45   #6
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Citation:
Ce site ainsi que ce forum sont une mine d'or.
Merci à tous ceux qui les entretiennent et à vous développeurs qui passaient du temps à nous dépanner.
Merci à toi User pour ce coup de main.

Soyons clair sans vous tous, j'aurais été parfaitement incapable de mettre au point mon application.

A bientôt.
Merci à toi au nom de toute l'équipe
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h26.


 
 
 
 
Partenaires

Hébergement Web