OVH Cloud OVH Cloud

De fil en aiguille...

4 réponses
Avatar
YDN
Bonjour à tous,
Sur un jeu d'essai, je faisais un formulaire de recherche de commande, en fonction du nom du client, et/ou du numéro de commande.

Pour ce faire, en en tête du formulaire en mode affichage continu, j'ai fait deux menus déroulant (RechClient, RechNum) basés sur
deux requêtes intrinsèques au menu déroulant.

Principe de ces deux menus déroulants :
SELECT DISTINCT COMMANDE.Client FROM COMANDE ORDER BY COMMANDE.Client;
SELECT DISTINCT COMMANDE.Num FROM COMANDE ORDER BY COMMANDE.Num;

Là je me suis dit qu'il serait bien que l'utilisateur soit assisté et qu'on le positionne sur l'enregistrement choisi dans le menu
déroulant :

=> code après mise à jour :
(Pour la recherche par client)
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

De fil en aiguille...
Je me suis dit que l'utilisateur pouvait taper le début d'un nom dans le menu déroulant et que si le formulaire était trier selon le
critère de recherche, il pourrait aller chercher ensuite à la main un client dont la connaissance de l'orthographe était hasardeuse
par exemple à partir de quelques lettres uniquement.

Là j'ai donc simplement ajouter une ligne à mon code :

Screen.ActiveForm.OrderBy = "client"

Ce qui donne

(Pour la recherche par client)
Screen.ActiveForm.OrderBy = "client"
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

(Pour la recherche par numéro)
Screen.ActiveForm.OrderBy = "Num"
DoCmd.GoToControl "Num"
DoCmd.FindRecord Me!RechNum

Et j'était très content ! mon tricot avait de l'allure ça faisait bien ce que je voulais.

Le hic (évidement y en a un), c'est que je devais, en fait, faire la même chose sur une base, certes un peu plus grosse, en Odbc.

Là le même formulaire c'est mis à planter lamentablement sur la recherche client uniquement....

j'ai tenté quelques adaptation du code tels que :
'Screen.ActiveForm.OrderBy = "client"
Me.OrderBy = "client"
Me.Refresh
Me.Repaint
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

Là le formulaire ne plante plus mais il n'est plus jamais triés sur le critère du client, pour la recherche par numéro (l'autre menu
déroulant) toujours pas de problème !!!
(Il faut dire que par défaut à l'origine le formulaire été trié sur ce critère)

Mon fil m'a t-il emmener dans une fausse direction ??? Ai je trouvé une mauvaise solution pour mettre en oeuvre cette idée ?
Comment auriez vous fait pour que ça marche ?

Format de fichier Access 2000 problème observé sous Access XP (SP3) et Access 2003 (SP1 oui je sais pas encore à jour).

Merci de toute contribution.

Merci d'avoir lu jusque là.

4 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Petite question bête :
Est-ce-que ton filtre est bien positionné sur ON ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"YDN" a écrit dans le message de
news:
Bonjour à tous,
Sur un jeu d'essai, je faisais un formulaire de recherche de commande, en
fonction du nom du client, et/ou du numéro de commande.


Pour ce faire, en en tête du formulaire en mode affichage continu, j'ai
fait deux menus déroulant (RechClient, RechNum) basés sur

deux requêtes intrinsèques au menu déroulant.

Principe de ces deux menus déroulants :
SELECT DISTINCT COMMANDE.Client FROM COMANDE ORDER BY COMMANDE.Client;
SELECT DISTINCT COMMANDE.Num FROM COMANDE ORDER BY COMMANDE.Num;

Là je me suis dit qu'il serait bien que l'utilisateur soit assisté et
qu'on le positionne sur l'enregistrement choisi dans le menu

déroulant :

=> code après mise à jour :
(Pour la recherche par client)
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

De fil en aiguille...
Je me suis dit que l'utilisateur pouvait taper le début d'un nom dans le
menu déroulant et que si le formulaire était trier selon le

critère de recherche, il pourrait aller chercher ensuite à la main un
client dont la connaissance de l'orthographe était hasardeuse

par exemple à partir de quelques lettres uniquement.

Là j'ai donc simplement ajouter une ligne à mon code :

Screen.ActiveForm.OrderBy = "client"

Ce qui donne

(Pour la recherche par client)
Screen.ActiveForm.OrderBy = "client"
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

(Pour la recherche par numéro)
Screen.ActiveForm.OrderBy = "Num"
DoCmd.GoToControl "Num"
DoCmd.FindRecord Me!RechNum

Et j'était très content ! mon tricot avait de l'allure ça faisait bien ce
que je voulais.


Le hic (évidement y en a un), c'est que je devais, en fait, faire la même
chose sur une base, certes un peu plus grosse, en Odbc.


Là le même formulaire c'est mis à planter lamentablement sur la recherche
client uniquement....


j'ai tenté quelques adaptation du code tels que :
'Screen.ActiveForm.OrderBy = "client"
Me.OrderBy = "client"
Me.Refresh
Me.Repaint
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

Là le formulaire ne plante plus mais il n'est plus jamais triés sur le
critère du client, pour la recherche par numéro (l'autre menu

déroulant) toujours pas de problème !!!
(Il faut dire que par défaut à l'origine le formulaire été trié sur ce
critère)


Mon fil m'a t-il emmener dans une fausse direction ??? Ai je trouvé une
mauvaise solution pour mettre en oeuvre cette idée ?

Comment auriez vous fait pour que ça marche ?

Format de fichier Access 2000 problème observé sous Access XP (SP3) et
Access 2003 (SP1 oui je sais pas encore à jour).


Merci de toute contribution.

Merci d'avoir lu jusque là.















Avatar
YDN
Bonjour à tous, bonjour et merci Jessy,

Petite question bête :
Est-ce-que ton filtre est bien positionné sur ON ???


Si tu parles de la propriété (de type données) du formulaire, nommé "filtrage autorisé" le choix est bien à oui !
Cette propriété aurait quelque chose à voir avec le tri ?

Ah ! un "petit" oubli dans mon scénario...
Mon jeu d'essai à son formulaire basé directement sur une table qui contient bien que des commandes.

Mon fichier odbc lui, contient tous les en-têtes de type facturation, dont les commandes... Dans un premier temps mon formulaire
était basé sur une requête filtrant uniquement les commandes...

Puis je me suis dit que le problème pouvait venir de là, formulaire basé sur une requête plutôt que sur une table. J'ai alors basé
mon formulaire sur la table en odbc et ajouter le critère de filtre dans la propriété filtre...

Tout continu d'être ok, sauf le tri sur client !!! Le tri sur Num fonctionne à merveille... Bizarre quand même.

Merci de toute contribution.
Merci d'avoir lu jusque là.





"Jessy Sempere [MVP]" a écrit dans le message de news: 4357b2b0$
Bonjour

Petite question bête :
Est-ce-que ton filtre est bien positionné sur ON ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"YDN" a écrit dans le message de
news:
Bonjour à tous,
Sur un jeu d'essai, je faisais un formulaire de recherche de commande, en
fonction du nom du client, et/ou du numéro de commande.


Pour ce faire, en en tête du formulaire en mode affichage continu, j'ai
fait deux menus déroulant (RechClient, RechNum) basés sur

deux requêtes intrinsèques au menu déroulant.

Principe de ces deux menus déroulants :
SELECT DISTINCT COMMANDE.Client FROM COMANDE ORDER BY COMMANDE.Client;
SELECT DISTINCT COMMANDE.Num FROM COMANDE ORDER BY COMMANDE.Num;

Là je me suis dit qu'il serait bien que l'utilisateur soit assisté et
qu'on le positionne sur l'enregistrement choisi dans le menu

déroulant :

=> code après mise à jour :
(Pour la recherche par client)
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

De fil en aiguille...
Je me suis dit que l'utilisateur pouvait taper le début d'un nom dans le
menu déroulant et que si le formulaire était trier selon le

critère de recherche, il pourrait aller chercher ensuite à la main un
client dont la connaissance de l'orthographe était hasardeuse

par exemple à partir de quelques lettres uniquement.

Là j'ai donc simplement ajouter une ligne à mon code :

Screen.ActiveForm.OrderBy = "client"

Ce qui donne

(Pour la recherche par client)
Screen.ActiveForm.OrderBy = "client"
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

(Pour la recherche par numéro)
Screen.ActiveForm.OrderBy = "Num"
DoCmd.GoToControl "Num"
DoCmd.FindRecord Me!RechNum

Et j'était très content ! mon tricot avait de l'allure ça faisait bien ce
que je voulais.


Le hic (évidement y en a un), c'est que je devais, en fait, faire la même
chose sur une base, certes un peu plus grosse, en Odbc.


Là le même formulaire c'est mis à planter lamentablement sur la recherche
client uniquement....


j'ai tenté quelques adaptation du code tels que :
'Screen.ActiveForm.OrderBy = "client"
Me.OrderBy = "client"
Me.Refresh
Me.Repaint
DoCmd.GoToControl "client"
DoCmd.FindRecord Me!RechClient

Là le formulaire ne plante plus mais il n'est plus jamais triés sur le
critère du client, pour la recherche par numéro (l'autre menu

déroulant) toujours pas de problème !!!
(Il faut dire que par défaut à l'origine le formulaire été trié sur ce
critère)


Mon fil m'a t-il emmener dans une fausse direction ??? Ai je trouvé une
mauvaise solution pour mettre en oeuvre cette idée ?

Comment auriez vous fait pour que ça marche ?

Format de fichier Access 2000 problème observé sous Access XP (SP3) et
Access 2003 (SP1 oui je sais pas encore à jour).


Merci de toute contribution.

Merci d'avoir lu jusque là.



















Avatar
3stone
Salut,

"YDN"
[...]
| Là j'ai donc simplement ajouter une ligne à mon code :
|
| Screen.ActiveForm.OrderBy = "client"
|
| Ce qui donne
|
| (Pour la recherche par client)
| Screen.ActiveForm.OrderBy = "client"


Screen.ActiveForm.OrderByOn = True



| DoCmd.GoToControl "client"
| DoCmd.FindRecord Me!RechClient
|



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
YDN
Bonjour à tous, Bonjour et merci à toi 3stone,

Screen.ActiveForm.OrderByOn = True
Dès que j'ai accès à la machine (Odbc), je teste et je tiens au courant...

Je suis moyennement confiant puisque mon tri sur le numéro fonctionne.

Mais je ferai un retour.
Merci encore.
Merci d'avoir lu jusque là.


"3stone" a écrit dans le message de news: %
Salut,

"YDN"
[...]
| Là j'ai donc simplement ajouter une ligne à mon code :
|
| Screen.ActiveForm.OrderBy = "client"
|
| Ce qui donne
|
| (Pour la recherche par client)
| Screen.ActiveForm.OrderBy = "client"


Screen.ActiveForm.OrderByOn = True



| DoCmd.GoToControl "client"
| DoCmd.FindRecord Me!RechClient
|



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/