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 25/01/2011, 10h52   #1
Invité régulier
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 7
Points : 7
Par défaut Paramètre et requete enregistrée

Bonjour,

Je débute avec Access et je suis bloqué par le problème suivant:
J'ai enregistré une requete "listePosteMap" comprenant un parametre "poste".

Sur mon formulaire "frmListePostes", j'ai une listebox "lstListePostes". Lorsque je clique sur un item de la listbox, j'ouvre le formulaire frmPoste sur lequel se trouve une autre listbox.
Cette listbox est liée à ma requete enregistrée (propriété 'contenu' dans le mode conception).

code du clic sur la première listbox:
Code :
1
2
3
4
5
6
 
Set requete = CurrentDb.QueryDefs("listePosteMap")
With lstListePostes
     requete.Parameters("poste") = .Column(0, .ItemsSelected.Item(0))
End With
DoCmd.OpenForm "frmPoste"
le problème est que lorsque "frmPoste" s'ouvre, j'ai malgré tout une fenêtre me demandant le paramètre de la requête.

Comment puis-je faire ??

Merci par avance
Yanns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 18h47   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Il faut tricher un peu :-).

Dans ta requête, il faut mettre

Code :
[forms]![NomTonFormParam]![NomTonChampParam]
comme critère à la place de ton paramêtre.

Tu ne peux pas facilement ouvrir un formuliare sur une requête paramétrée autrement.

Autre solution utiliser la clause Where de DoCmd.OpenForm (voir l'aide pour les détails) pour filtrer tes données au moment de l'ouverture au lieu de les filtrer dans la source de données.

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 26/01/2011, 09h25   #3
Invité régulier
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 7
Points : 7
Bonjour,

Donc si je comprends bien la première solution, je mets dans le critère de la requete: [forms]![frmPoste]![poste].

Cependant il faut que je modifie mon code lors de l'ouverture du formulaire ou pas ??

Merci

[edit]
Bon finalement j'ai utilisé la méthode suivante:

Code :
listeMap.rowSource = "ma requete SQL avec critere tiré de la propriété OpenArgs"
Merci pour l'aide
Yanns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 13h48   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Pour répondre à ta question :

Soit tu utilises [Forms]!...

soit tu utilises le DoCmd.OpenForm()

C'est l'un ou l'autre.

Ou en effet comme tu l'a fait tu peux utiliser une assignation de la source de données au moment de l'ouverture.

Ma préférence va à l'utilisation du DoCmd.OpenForm qui me permet d'avoir un seul formulaire pour gérer tous ou une partie des données sans modifier la source de données.

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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h52.


 
 
 
 
Partenaires

Hébergement Web