Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et 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.

Réponse
 
Outils de la discussion
Vieux 16/07/2008, 10h19   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juillet 2008
Messages: 23
Par défaut Erreur 2001 avec DLookup

Bonjour,

J'ai un petit problème de programmation: "erreur d'exécution '2001': Opération annulée".

Le code est le suivant:

Code :
Sub test()
Dim Destinataire As String
Destinataire = DLookup("[email]", "SALARIE", "[Forms]![Inscription sous-formulaire]![Réponse Participation]='Oui'")
MsgBox Destinataire
End Sub
Comme vous pouvez le remarquer (à moins que ma syntaxe soit tellement fausse qu'elle en devienne incompréhensible), j'ai voulu créer une variable "Destinataire" contenant tous les emails des salariés (stockées dans la table SALARIE) qui ont répondu "Oui" à une invitation, ce Oui étant présent dans le champ "Réponse participation" contenu dans le sous-formulaire "Inscription sous-formulaire", lui-même situé dans un formulaire "sessions date valide" ...

Ouf, j'espère que vous avez suivi. Au pire je peux faire un screenshot. Le problème se situe dans l'argument "critère", puisque quand je rentre des critères simples (Nom de Famille = Trucmuche), je ne rencontre aucun problème.

Merci d'avance,

LUD734
LUD734 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 10h41   #2 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

Salut,

dis moi, c'est plutôt un critère du genre:
Code :
"[taTable].[tonChamp] = " 
	& [Forms]![Inscription sous-formulaire]![Réponse Participation]
avec justement [Forms]![Inscription sous-formulaire]![Réponse Participation]='oui'

???
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 10h54   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juillet 2008
Messages: 23
Par défaut

Non, justement, c'est bien ça le problème. Le [Forms]![...] peut prendre trois valeurs: Null, Oui, Non.
Je veux que le critère sélectionne seulement la valeur Oui. Il faut donc que soit figuré [Forms]![...]='Oui' quelque part il me semble.
De plus, c'est à ce qu'il me semble [monFormulaire].[maListeDéroulante ]

Merci de ton intérêt.
LUD734 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 10h58   #4 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

ok, mais là, tu interroge ta table en fonction d'un champs (de cette table) appelé "[Forms]![Inscription sous-formulaire]![Réponse Participation]"

Je ne crois pas que ce champs existe dans ta table...
Donc, si [Forms]![Inscription sous-formulaire]![Réponse Participation] peut prendre 3 valeurs, tu dois interroger le champs de ta table afin d'obtenir les enregistrements (salariés) pour lesquels le champs est égal à [Forms]![Inscription sous-formulaire]![Réponse Participation], que [Forms]![Inscription sous-formulaire]![Réponse Participation] soit à oui, non ou autre.
c'est en fonction de la valeur de [Forms]![Inscription sous-formulaire]![Réponse Participation] que tu vas justement interroger ta table.

Suis-je clair?
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 13h37   #5 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mars 2008
Messages: 24
Par défaut

Salut,

Citation:
Envoyé par LUD734 Voir le message
j'ai voulu créer une variable "Destinataire" contenant tous les emails des salariés (stockées dans la table SALARIE)
Avec le code que tu nous fourni, la variable "destinataire" ne retournera pas la liste complète des emails des salariés. DLookup va juste te retrouver la première adresse répondant à ton critère. Je sais pas si déjà c'est ce que tu avais prévu... Sinon faudra adapter ton code

Et comme le dit 6ril25, il faut bien que ton critère soit un champs de ta table comparé à une expression, une valeur d'un contrôle de ton formulaire ou autre. cf tutos sur fonctions de domaine

++
Siu Lim Tao est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide