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 29/11/2011, 18h27   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
Par défaut problème d'exécution en VBA

bonsoir à tous,

voila je développe un module VBA sous Access. Le problème c est que le code ne s'exécute pas ! je ne comprends pas pourquoi. J'ai mis des points d'arrêts, rien à faire. Pourquoi le code ne s exécute t il pas ?
voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function PaysV(nomPays As String) As Boolean
'renvoie vrai si le pays est dans la liste des pays de la table country
 
Dim rcs As Recordset
Dim qdf As QueryDef
 
Set qdf = CurrentDb.QueryDefs("ReqEstUnPaysValide")
qdf.Parameters("MyCountry") = nomPays
 
Debug.Print "en cours"
 
Set rcs = qdf.OpenRecordset
 
If rcs.EOF Then estUnPaysValide = False Else estUnPaysValide = True
 
Set rcs = Nothing
Set qdf = Nothing
 
End Function
Merci infiniement pour votre aide !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 18h31   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
bonsoir,

la fonction s'appelle paysv mais c'est estunpaysvalide qui est valorisé

Et plus simplement :
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 23h09   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
En fait je teste la fonction avec un :

Code :
debug.print PaysV("France")
et j'obtiens ni faux, ni vrai !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h36   #4
Membre confirmé
 
Inscription : juillet 2006
Messages : 347
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 347
Points : 289
Points : 289
Bonjour,

Tu m'étonnes que ca ne marche pas ...

Relis ce que t'as mis Nico84.

Tu crée une fonction dont le nom est PaysV et tu affecte ton Vrai/faux sur estUnPaysValide ...

Appelle ta fonction estUnPaysValide au lieu de PaysV ou bien sur la derniere ligne de ton code tu mets
Code :
PaysV = estUnPaysValide
(en ayant pris soin de déclarer ta variable estUnPaysValide as boolean)
Access Newbie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 17h59   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
bonjour,

en fait c était une coquille, j'ai mis une version fausse de mon code. Je mets bien le nom de la fonction pour retourner le booléan !

merci
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 22h06   #6
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
en jouant avec les commentaires pour voir pourquoi le code ne s'exécute pas, je me rends compte que le problème provient de la ligne :

Code :
Set rcs = qdf.OpenRecordset
quand j'ajoute cette ligne, le code n'est plus lu ! Une idée ? merci!
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 09h38   #7
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
J'utilise un code similaire qui marche bien, la seule différence est que je précise
Code :
1
2
Dim rcs As dao.Recordset
Dim qdf As dao.QueryDef
La requête ReqEstUnPaysValide fonctionne en appel direct avec un et un seul paramètre mycountry ?
pas d'erreur de compil ni d'exécution ?
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 20h48   #8
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
Bonsoir,
désolé pour le retard (j'étais en petit WE pour souffler un peu... ).

ça marche nickel ! Par contre j'ai pas compris ce que ça rajoute de mettre le dao.XXXX

Si quelqu'un a une explication, je suis preneur !

Mais en tous cas merci infinimment pour cette aide précieuse.
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 11h02   #9
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
En fonction des références cochées dans ton appli, le recordset peut être de type DAO ou ADO et alors les syntaxes ne sont pas les mêmes à l'utilisation.

Le fait de préciser "DAO.xxx" lève l'ambiguité...
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h10   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
ok j'ai compris !
Merci Nico pour ton aide.
zskiredj 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 00h34.


 
 
 
 
Partenaires

Hébergement Web