(Access) Comment atteindre enregistrement....
Fermé
sevensenses
Messages postés
1
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
23 janvier 2007
-
23 janv. 2007 à 15:33
jerem - 6 déc. 2012 à 15:52
jerem - 6 déc. 2012 à 15:52
A voir également:
- Code vba access pour rechercher un enregistrement
- Rechercher ou entrer l'adresse - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Rechercher et remplacer word - Guide
9 réponses
crouic5
Messages postés
10
Date d'inscription
samedi 28 octobre 2006
Statut
Membre
Dernière intervention
16 octobre 2013
5
17 nov. 2008 à 23:52
17 nov. 2008 à 23:52
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é
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é