IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Rester sur un enregistrement en changeant de formulaire [AC-2010]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Rester sur un enregistrement en changeant de formulaire
    Bonjour,

    J'ai une table source dont la clé principale est "n° de dossier". Cette clé est clé étrangère pour toutes mes autres tables étant donné que chaque information saisie dans les autres tables est propre à un dossier précis.

    La saisie dans les champs se fait via des formulaires. Le problème, c'est qu'après avoir recherché un enregistrement dans un formulaire et que soit je le ferme et le rouvre soit j'ouvre un autre formulaire, ceux-ci se retrouvent automatiquement positionnés sur le premier enregistrement et non pas sur celui que j'étais en train de consulter.

    J'aimerai donc savoir s'il est possible d'être automatiquement positionné sur le dernier enregistrement consulté en changeant de formulaire, ou en fermant et rouvrant un même formulaire ?

    Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Bonjour,

    Il suffit pour cela de mémoriser le n° de dossier "courant" dans une variable globale "mondossier" et de filtrer ou pointer sur ce dossier à l'ouverture de n'importe quel formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Activate() 
    if mondossier>0 then Me.Recordset.FindFirst "NoDossier=" & mondossier 'pointer
    'ou :
    me.filter="NoDossier=" & mondossier 'filtrer
    end sub
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Comment faire pour mémoriser le n° de dossier courant dans une variable globale ?

    Je suis tombé sur cet article : http://argyronet.developpez.com/offi...nvention/#L4-1 mais ce n'est pas vraiment clair, je suis plutôt débutant sur Access.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Déclaration à placer dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public mondossier as long 'ou string selon que le dossier est numérique ou alphanumerique
    Ensuite la variable est utilisable n'importe quand... Par exemple dans le formulaire "principal" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
    If Recordset.EOF Then mondossier=0 else mondossier = [le nom du dossier dans cette form]
    End Sub
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    J'ai bien créé un module "Mondossier" avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public mondossier as long 'ou string selon que le dossier est numérique ou alphanumerique
    J'ai ensuite inséré les deux codes suivants dans un formulaire mais un message d'erreur apparait à chaque fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
    If Recordset.EOF Then mondossier=0 else mondossier = [N° de dossier régional]
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Activate() 
    if mondossier>0 then Me.Recordset.FindFirst "N° de dossier régional=" & mondossier 'pointer
    'ou :
    me.filter="N° de dossier régional=" & mondossier 'filtrer
    end sub

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Citation Envoyé par Androalphus Voir le message
    J'ai ensuite inséré les deux codes suivants dans un formulaire mais un message d'erreur apparait à chaque fois.
    Et je dois deviner laquelle ?

    Par ailleurs pour le 2e code :
    - les espaces dans les noms de champs sont vivement déconseillés et obligent à toujours tout entourer de []
    - si j'ai écrit 'ou c'est que c'est l'un OU l'autre...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
    If Recordset.EOF Then mondossier=0 else mondossier = [N° de dossier régional]
    End Sub
    Le message d'erreur relatif à ce code est : "L'expression Sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. Nom ambigu détécté : Form_Current.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Activate()
    me.filter=[N° de dossier régional=] & mondossier
    end sub
    Affiche : "Erreur de compilation : incompatibilité de type" en surlignant le &.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Activate() 
    if mondossier>0 then Me.Recordset.FindFirst [N° de dossier régional=] & mondossier
    end sub
    Affiche : "Erreur de compilation : incompatibilité de type" en surlignant le >.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    N'ayant toujours pas réussi à résoudre le problème, je relance le sujet.

    J'ai donc créé un module nommé "mondossier" dans lequel figure le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Option Compare Database
     
    Public mondossier As String
    Le blocage persiste au niveau des formulaires, j'obtiens les messages d'erreurs cités auparavant à chaque fois, et je ne comprend pas d'où vient l'erreur.

  9. #9
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    il existe une solution assez simple qui s'appuie sur les variables temporaires

    sur l'evenement OnCurrent de la forme il faut stocker l'identifiant en cours: SetTempVar TV_NoDossier=[NoDossier]
    sur l'evenement OnActivate on recherché l'enregistrement avec SearchForRecord Where ="[NoDossier]=" & [TempVars]![TV_NoDossier]

    ci joint un exemple
    RetrieveRecord.zip

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre aide !

    La solution est effectivement bien plus simple, cependant cela ne fonctionne que lorsque le type de données du N° de dossier est en NuméroAuto.

    Y a-t-il un moyen de le faire fonctionner lorsque le N° de dossier est au format texte ?

  11. #11
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    il faut rajouter des apostrophes de part et d'autre

    SearchForRecord Where ="[NoDossier]='" & [TempVars]![TV_NoDossier] & "'"

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Assistant
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Ça fonctionne !

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/10/2015, 13h57
  2. Réponses: 1
    Dernier message: 16/04/2008, 06h42
  3. Réponses: 5
    Dernier message: 28/06/2007, 16h58
  4. Réponses: 10
    Dernier message: 20/04/2007, 10h08
  5. rester sur l'enregistrement courant
    Par jpp81 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/01/2007, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo