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

VBA Access Discussion :

Repositionner sélecteur sur enregistrement actif sur formulaire continu


Sujet :

VBA Access

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut Repositionner sélecteur sur enregistrement actif sur formulaire continu
    Bonjour à tous

    Je dispose d'un formulaire qui contient plusieurs containers :

    - Dans la partie du haut est incrusté un formulaire continu
    - Dans la partie du bas est incrusté un formulaire unique qui est filtré par le FC décrit plus haut

    Le formulaire du bas est aussi ouvrable en mode modal et vient se positionner au centre de l'écran

    Je voudrais enregistrer la référence à l'enregistrement actif de façon à ce que le sélecteur du FC revienne ou reste sur la position sur laquelle il était avant d'ouvrir le formulaire du bas et ce même après qu'un requery ait été effectué à la fermeture du formulaire modal...

    Pour cela j'ai tenté d'enregistrer la position du recordset actuel avec le code ci-dessous pour pouvoir s'en resservir ensuite mais j'ai un message d'erreur à la deuxième ouverture du formulaire modal me disant "aucun enregistrement en cours ..."

    Deplus, comment fait on pour repositionner le sélecteur ensuite dans le FC du haut une fois ayant une référence au numéro d'enregistrement qui était en cours ?

    PS: Le requery à la fermeture du formulaire modal est obligatoire : je sais que c'est lui qui nous fait perdre le focus sur l'enregistrement en cours...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        'Enregistre la position du recordset actif
     
        Dim PositionReg As Byte
        Dim rs As DAO.Recordset
     
        Set rs = Me.RecordsetClone
     
        PositionReg = rs.Bookmark
        Debug.Print PositionReg
     
        rs.Close
        Set rs = Nothing
     
    DoCmd.OpenForm "fiche mairies"
    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Le controle de l'affichage en Access est toujours un peu delicat.

    As-tu une clef primaire que tu pourrais recuperer, ce serait la methode la plus simple.
    Apres le requery, tu fais un me.Recordset.Findfirst("TaClef"= & Taclef) et Access va se placer sur le bon enregistrement.
    Note que ce ne sera pas forcement a la meme place dans l'ecran.

    Sinon a quoi sert le requery ?

    Si cela ne touche quelques champs et pas toutes tes donnees, tu peux peut-etre utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.TonChamp.Requery
    qui ne rafraichi que le champ vise.

    Enfin comme tu es en Access apres 2010, as-tu explore les formulaires a double affichage.
    Ils presentent les meme donnees en liste et en detail, sans aucune programmation a faire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Merci beaucoup ppour cette réponse

    J'ai testé hier soir cette approche mais la solution double affichage me semble très limitée face à un listview et quelques lignes de code, par exemple :

    A moins que je me trompe :

    On ne peut pas changer la couleur d'une liste colonne par colonne, pas d'icones possibles, pas de multisélection, pas de contrôle réel sur les colonnes à afficher...

    Ceci dit si l'on pouvait coder par derrière je prendrais bien cette solution pour son avantage sur les filtres par colonnes et surtout le splitter + choix du placement de la fdd dans le formulaire...

    Je suis donc encore partant pour ce genre de solution mais pourra elle rentrer en compétition avec un bon listview + formulaire unique codé classiquement ?

    J'attends votre avis, de toutes façons j'ai créé un formulaire double affichage tout marche très bien mécaniquement mais comment prendre le pouvoir sur la présentation de la feuille de données ?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Oui tu as raison, l'affichage en mode double est un affichage feuille de donnees combine a un affichage formulaire unique.
    Donc il a les limitations de la feuille de donnees.
    Pour les icones on ne peut rien faire mais tu peux changer la couleur d'un champ en utilisant la mise en forme conditionnelle.
    ll faut choisir "expression" est mettre =True (ce qui fait que la condition est troujours vraie) et choisir la mise en forme voulue.
    Note que l'affichage est un peu long a la détente mais cela marche.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    Solution à la question initiale :

    Me.Recordset.Requery

Discussions similaires

  1. [AC-2013] Requête sur enregistrement actif
    Par CrasherSEP dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/01/2018, 09h37
  2. [AC-2010] Position sur ouverture d'un formulaire continue
    Par FewRa dans le forum IHM
    Réponses: 7
    Dernier message: 20/02/2014, 18h31
  3. Réponses: 2
    Dernier message: 02/07/2011, 12h39
  4. Effets sur boutons dans un formulaire continu
    Par docjo dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/10/2009, 08h12
  5. Réponses: 2
    Dernier message: 03/08/2006, 22h00

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