|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Bonjour,
Je développe actuellement une DB en Access 2007 pour le suivre la maintenance des machines que j'ai vendu à mes clients. Je rencontre le problème suivant : dans un champs indépendant (liste déroulante), je liste toutes les machines en service. Ensuite, je voudrais qu'en cliquant sur un bouton (que j'ai appelé "Find"), la fiche détaillée de cet enregistrement s'ouvre. Actuellement, j'utilise Code :
"DoCmd.GoToRecord acActiveDataObject, , acGoTo, Serial"
Cela fonctionne dans ma table de machine. Par contre, je voudrais faire la même chose pour ma table client (créer un formulaire de recherche, à l'aide d'une zone de liste déroulante indépendante), mais là, je rencontre un problème : ca ne marche pas... La seule différence que je vois, c'est que, dans ma table Clients, ma clé primaire est assurée par un n° automatique et que j'ai dû supprimer plusieurs enregistrements (ce qui je crois explique mon problème). D'après les recherches que j'ai pu faire, je crois que la solution serait d'utiliser les recordset, mais c'est ici que les choses se gâtent: je ne suis pas informaticien et ce concept me dépasse... J'aurais souhaité savoir si quelqu'un pouvait m'aider, soit en m'aidant à créer le code nécessaire, ou en me renvoyant vers des tutoriels genre "Les recordsets pour les Nuls" (parce que je n'en touche vraiment pas une sur le sujet...), ou encore en m'expliquant les bases... J'espère que je poste au bon endroit, que ma question est claire et que je donne toutes les infos nécessaires, sinon il ne faut pas hésiter à me demander plus d'informations. D'avance je vous remercie pour votre précieuse aide et d'avoir pris la peine de lire ce message jusqu'au bout! |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
Rien n'est désespéré. Pour contourner votre problème, je ne suis pas sûr qu'utiliser les recordsets soit plus approprié (pour info, aller voir le tutoriel Création et manipulation des données avec DAO , surtout la partie 5). Je serais plutôt partisan d'utiliser les filtres, et plus précisément le langage SQL (tutoriel : Le Langage SQL appliqué à Access ). L'idée est la suivante : plutôt que d'ouvrir la totalité de la table comme source du formulaire d'affichage, puis d'aller au bon enregistrement (ce que vous avez tenté de faire), il me semble plus judicieux de choisir l'enregistrement qu'on veut (par une liste), puis ouvrir le formulaire de consultation avec une source n'incluant que cet enregistrement. Dans votre cas, cela pourrait donner ceci : Code :
Pierre |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Bonjour Pierre,
Un tout grand merci pour ces infos! Actuellement, je potasse les documents proposés sur les recordsets (histoire de finir moins bête Je trouve votre suggestion tout à fait logique! Le seul hic que j'ai rencontré, c'est que la valeur stocké dans la variable est le n° de l'enregistrement. Tant qu'il est le même que la clé primaire, pas de soucis. C'est lorsque j'ai un décalage entre les 2 que ça commence à se gâter. C'est pourquoi j'envisageais de me tourner vers les recordsets. De toutes manières, j'implémenterais les 2 pour comparer! Encore merci et bonne journée, Mykegyver |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
A vous lire, à moins que quelque chose m'ait échappée, passer par les recordset ne résoudra pas votre problème. Je pense qu'il y a un mauvais paramètrage dans votre formulaire : Citation:
Si vous avez des difficultés, donner nous la source de la liste déroulante, et la source du formulaire "client". Bonne journée Pierre |
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Hmm...
Je me suis peut-être emballé un peu vite... Ca coince toujours Voici mon code Code :
Je m'explique: si ma clé primaire a comme valeur 12 (j'utilise les n° automatiques) mais qu'il s'agit du 10ème enregistrement, à l'ouverture du formulaire, il me positionne sur le 12ème enregistrement... Je vois bien l'erreur mais je ne vois pas comment la corriger D'avance !Mykegyver |
||
|
|
00
|
|
|
#6 | ||
|
Membre chevronné
![]() ![]() |
Salut
Il faut faire la différence entre ouvrir un formulaire à un enregistrement (un filtre)... Code :
DoCmd.OpenForm "fClient",,,,,,me.cboMaListe Code :
DoCmd.OpenForm "fClient",,,,,,"matable.id=" & Me.Serial Code :
DoCmd.GoToRecord acActiveDataObject, , acGoTo, Serial
Code :
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
||
|
00
|
|
|
#7 | ||||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Et voilà!
Ca y est, ca marche... Voici mon code: 1. Le click sur le bouton Code :
Code :
Mykegyver |
||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 1 ![]() |
Bonjour,
J'ai un formulaire créer par l'assistant Access et j'ai rajouter une zone de liste afin d'afficher d'autres informations en liaison avec la le formulaire creer par l'assistant et qui est lié à une table. Mon problème c'est que la zone de liste ne réagi pas au boutons précèdent et suivant quand je navigue dans le formulaire. Merci pour votre réponse. |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
Nous ne sommes pas devins. Il nous faudrait plus de renseignements. Les codes correspondant aux clics sur les boutons, par exemple. Pierre |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com