Posez votre question Signaler

(Access) Comment atteindre enregistrement....

sevensenses 1Messages postés mardi 23 janvier 2007Date d'inscription 23 janvier 2007Dernière intervention - Dernière réponse le 6 déc. 2012 à 15:52

Bonjours,
Voici ce que je cherche à faire.
J’ai deux formulaires contenants plusieurs enregistrements qui utilisent la même table. Un des formulaires utilisent tous les champs de la table et l’autre n’en utilise que quelques uns.
J’ai crée une macro qui fait en sorte que je puisse passer d’un formulaire à l’autre seulement en double-cliquant sur un champs en particulier.
Le problème c’est qu’il me ramène toujours sur le premier enregistrement du formulaire au lieu de me ramener sur l’enregistrement correspondant a celui d’où j’étais dans l’autre formulaire.
Voici un exemple : Je suis sur l’enregistrement 10 du formulaire X je voudrait en double-cliquant sur un champs en particulier aller sur l’enregistrement 10 du formulaire Y.
À l’aide SVP cela fait déjà plusieurs heures que je cherche la solution et je n’y parviens pas.
Merci à l’avance
Lire la suite 
Réponse
+4
moins plus
Si cela t'intéresses, j'ai trouvé, voici l'explication :
j'ai deux formulaires: Le premier un formulaire avec un sous formulaire. Dans la partie principale ,nous avons tout ce qui touche l'identité de l'élève et il est basé sur la table identité.

Le sous-formulaire est basé sur une table appelée évolution et montre différents test sportifs qui ont été effectués par l'élève.

Les deux tables sont reliées par une relation un à plusieurs avec un numéro compteur. le compteur se trouve dans la table identté et sert de clé d'index unique, la deuxième table évolution a un champ numérique qui accepte les doublons.

Le problème que j'avais c'est que je voulais avoir quand je faisais l'affichage liste, tous les champs affichés en ligne ( les champs repris dans le formulaire principal et les champs repris dans le formulaire lié. Pas de problème pour créer ce formulaire, il suffisait de baser ce formulaire sur une requête dans laquelle les deux tables étaient reprises.

Cependant là où le problème s'est posé c'est que je voulais en doublecliquant sur le nom de l'élève repris dans le formulaire principal arriver au même endroit sur la liste, donc sur le même nom et pouvoir voir toutes les fiches et vice-versa.

J'ai donc appliqué cette procédure sur l'évènement doubleclic du champ noms dans le formulaire identité et dans le formulaire listing qui me permet d'atteindre l'enregistrement spécifié en double cliquant sur le nom de l'un ou l'autre des deux formulaires :
Procédure sur l'évènement double clic pour le champs noms du formulaire identité

Private Sub Noms_DblClick(Cancel As Integer)
Dim intNbre As Integer
intNbre = Me.Numéro

DoCmd.OpenForm "listing"
DoCmd.ApplyFilter "listing trié", ""
Forms!listing!Numéro.SetFocus
DoCmd.FindRecord intNbre
DoCmd.GoToControl "débutléger"
DoCmd.Close acForm, "identité"
End Sub

Donc, en appliquant cette procédure, j'ouvre d'abord mon formulaire listing, j'applique un filtre qui me trie le listing par nom d'élève, il me fait atteindre l'enregistrement équivalent à celui du formulaire identité (le formulaire avec sous-formulaire) et les autres enregistrements ne sont pas cachés, ce qui se passait dans le cas d'un filtre classique.

A partir du formulaire listing, pour arriver sur l'enregistrement spécifié du formulaire identité, j'applique la même procédure en créant un évènement sur le champs noms

Private Sub NomElève_DblClick(Cancel As Integer)
Dim intNbre As Integer

intNbre = Me.Numéro

DoCmd.OpenForm "identité"
Forms!identité!Compteur.SetFocus
DoCmd.FindRecord intNbre
DoCmd.GoToControl "Noms"
DoCmd.Close acForm, "listing"
End Sub


Je peux donc ainsi passer d'un formulaire à l'autre en atteignant le même enregistrement que sur lequel je suis positionné sur le frormulaire de départ sans que les autres enregistrements ne soient cachés.

Voilà, j'espère t'avoir aidé
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+3
moins plus
Bonsoir,

Votre question revient fréquemment. Voici le grand secret ...

Private Sub <controle>_Click()
Rem DoCmd.Minimize
On Error GoTo Err_<controle>_Click

Dim stDocName As String
Dim StLinkCriteriA As String

stDocName = "<Formulaire à ouvrir>"
StLinkCriteriA = "[<Champ lié1>]=" & Me![<champ lié2>]

DoCmd.OpenForm stDocName, , , StLinkCriteriA

Exit Sub
DoCmd.Restore
Err_<controle>_Click:
MsgBox Error$
Exit Sub
End Sub

La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+1
moins plus
L'avantage n'est pas seulement un problème d'affichage, mais comme ce formulaire est basé sur une requeête reliant les deux tables, il est plus facile de faire des tris ou des filtres pouvant s" baser sur des champs de l'une ou l'autre tables et de ne faire apparaître que les fiches recherchées. Avec un formulaire doté d'un sous-formulaire, je n'arrive pas à filtreer des enregistrements qui reprennent le contenu de tous les champs quand je veux filtrer sur un champ contenu dans le souos-formulaire

Le formulaire tabulaire que j'ai créé n'a pas pour but de modifier, supprimer ou ajouter des données mais uniquement de faire apparaître les fiches désirées en filtrant ou en triant les données par rapport à n'importe quel champ, peu importe dans la table où il se trouve.
Ajouter un commentaire
Réponse
+0
moins plus
C'est intéressant et presque parfait pour moi. Le seul inconvénient, c'est qu'il ne montre que l'enregistrement spécifié et j'aimerais qu'il se positionne sur l'enregistrement demandé mais en permettant de voir tous les autres. Est-ce possible ? Si je fais ensuite afficher tous les enregistrements, le curseur revient au premier. Pour être clair, ce serait parfait pour moi si en doublecliquant sur un champ du premier formulaire individuel, je pourrais arriver à l'enregistrement correspondant dans un formulaire de type tabulaire global sans que les autres ne soeint cachés. Merci d'avance!
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Juste une question pour être sûr d'avoir bien compris :

Quel avantage procure l'affichage ainsi obtenu ?


La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je tiens un tutoriel sous Access 2000 à votre disposition . Il satisfera, après l'avoir transposé, à votre cahier des charges.

Il fait 229 Ko

Je le transmets dès que vous me ferez connaître l'adresse de livraison.

Bonne fin de journée

La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert
TONIO- 17 nov. 2008 à 18:32
Bonjour Jjaques,

je suis dans le même cas que le créateur du post et ton petit doc m'intéresse fortement.
Après quelques jours de recherche acharnées, je n'ai toujours pas trouvé réponse à mes pb.
Donc si tu pouvais avoir la bonté de me transmettre ton doc à l'adresse suivante (le_petit_pet@hotmail.com) cela serait bien sympa.

En te remerciant par avance,

TONIO
Répondre
nord82 11Messages postés mercredi 22 avril 2009Date d'inscription 6 juillet 2009Dernière intervention - 28 mai 2009 à 09:19
slt, j'ai vu tes explication et sa m'interssent bp , en fait je suis en projet de fin d'etudes et mon projet est de creer une base de donnée sous access et actulement j'ai qlqs pblèmes est ce que tu peux m'aider stp merci ,
et est ce que tu peux m'envoyer la doc sur access à ma boite mail (b_pole_nord@yahoo.fr) merci.
Répondre
nord82 11Messages postés mercredi 22 avril 2009Date d'inscription 6 juillet 2009Dernière intervention - 28 mai 2009 à 09:32
slt, j'ai vu tes explication et sa m'interssent bp , en fait je suis en projet de fin d'etudes et mon projet est de creer une base de donnée sous access et actulement j'ai qlqs pblèmes est ce que tu peux m'aider stp merci ,
et est ce que tu peux m'envoyer la doc sur access à ma boite mail (b_pole_nord@yahoo.fr) merci.
Répondre
core121- 27 avril 2010 à 16:41
Hello,

j'arrive peut-^tre un peu tard mias je suis aussi interssé par cette solution...

merci d'avance

Mathieu : mathieu.wyss @ moutier.ch
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci pour ce retour d'information. J'ai pris des notes.

Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEEVES Hubert.
Ajouter un commentaire
Réponse
+0
moins plus
Met ton paramètre dans une variable public

("
Public lenumerodetonenregistrement as integer
" par exemple et dans l'évènement load de ton formulaire fait un simple DoCmd.GoToRecord,,acGoTo, lenumerodetonenregistrement

Et la vie est belle
Ajouter un commentaire
Ce document intitulé «  (Access) Comment atteindre enregistrement....  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.