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 04/01/2011, 15h26   #1
Membre du Club
 
Homme Gérard Durand
Retraité
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Gérard Durand
Âge : 71
Localisation : France

Informations professionnelles :
Activité : Retraité
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 58
Points : 58
Envoyer un message via MSN à gerarddurand
Par défaut retour à un enregistrement spécifique après suppression d'un filtre

Bonjour à tous et meilleurs voeux.

Je vais essayer de me faire comprendre.

j'ai un formulaire "Saisie" avec comme source la table "N°Chambres".
Ce formulaire comprend entre autre le numéro de la chambre active. La case Filtre de la feuille de propriétés est chargée avec [N°Chambre]=110. (c'est le n° de la première chambre.)

La saisie se fait sur un sous formulaire avec comme source une requête.
Supposons que je sois sur la chambre "115".

Quand j'en ai besoin je vais chercher un numéro article dans un autre formulaire. Pour ce faire :
J'active le filtre du formulaire "Saisie " et j'ouvre le formulaire "Articles"
Code :
1
2
Me.FilterOn = True
DoCmd.OpenForm "frmcodetypeSaisie"
.
je rapatrie le N°Article et je termine la saisie de mon enregistrement. A la fin de l'enregistrement je mets le filtre à False et là problème :
Le système me repositionne sur la première chambre soit la "110"

Je voudrais que la chambre en cours "115" reste active.

Merci de l'aide
gerarddurand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h48   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,

Personnellement, je n'utilise jamais les propriétés telles que :
Plus souple et donc maléable à souhait :
Me.OpenArgs de la méthode OpenForm qui permet dynamiquement de définir la propriété RowSource d'un formulaire.

Mais aussi user de l'argument WhereCondition de la même méthode peut satisfaire votre demande.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/01/2011, 16h04   #3
Membre du Club
 
Homme Gérard Durand
Retraité
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Gérard Durand
Âge : 71
Localisation : France

Informations professionnelles :
Activité : Retraité
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 58
Points : 58
Envoyer un message via MSN à gerarddurand
merci argyronet,

Je ne suis pas assez calé en VBA pour comprendre et surtout mettre en application votre proposition.
gerarddurand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h32   #4
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bien voici par exemple une suggestion qui peut être mise en place sans être "calé" :
Code :
1
2
3
4
5
6
7
8
Dim MonArticleCherché As Variant
MonArticleCherché = InputBox("Quel numéro d'article cherchez-vous ?" & vbCrLf & vbCrLf & "Cliquez sur Annuler pour voir tous les articles", "Articles")
If Len(MonArticleCherché) Then
    DoCmd.OpenForm "Articles", acNormal, , "[NoArticle]=" & MonArticleCherché, acFormReadOnly, acDialog, Me!NoChambre
Else
    'Tous les articles
    DoCmd.OpenForm "Articles", acNormal, , , acFormReadOnly, acDialog, Me!NoChambre
End If
Pour la chambre :
On considère que l'identifiant de la chambre est son N° (je ne connais pas votre base), soit le champ NoChambre qui peut être lu en VBA par l'instruction : Sur l'événement Close du Formulaire Article ou bien sur l'événement Click de votre bouton Fermer de ce même formulaire, vous récupérer le N° de la chambre passé en paramètre à l'argument OpenArgs. (Sur le mot OpenForm appuyez su F1 pour de l'aide).
Code :
1
2
3
4
5
6
If Not IsNull(Me.OpenArgs) Then
    DoCmd.OpenForm "Saisie", acNormal, , "[NoChambre]=" & Me.OpenArgs, acFormEdit, , Me!NoChambre
Else
    'Toutes les chambres triées selon la définition de la source
    DoCmd.OpenForm "Saisie", acNormal, , , acFormEdit, , Me!NoChambre
End If
Bon, c'est très léger comme code mais cela peut orienter votre façon de procéder.

Ceci, dit, tel que je semble comprendre votre façon de fonctionner, je reste certain qu'il y a plus simple que cette méthode de saisie fastidieuse, notament l'usage de ComboBoxes qui irait chercher directement votre article sans avoir à le chercher dans un formulaire d'abord...

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/01/2011, 19h06   #5
Membre du Club
 
Homme Gérard Durand
Retraité
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Gérard Durand
Âge : 71
Localisation : France

Informations professionnelles :
Activité : Retraité
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 58
Points : 58
Envoyer un message via MSN à gerarddurand
merci pour ce developpement argyronet. J'utilise déjà ComboBox mais le fichier contient plus de 1500 références et lister pour en retrouver une c'est trop long d'où la raison de mon choix.
En tout cas grace à vos explications j'ai découvert OpenArgs.
gerarddurand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 12h16   #6
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour
On pourrait aussi envisager une liste, dont le contenu serait modifiée selon certains choix.

Pierre
pier.antoine 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 13h53.


 
 
 
 
Partenaires

Hébergement Web