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 :

défilement automatique du sous-formulaire afin de voir la nouvelle ligne


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut défilement automatique du sous-formulaire afin de voir la nouvelle ligne
    Bonjour

    Dans un sous-formulaire, j'affiche la barre de défilement verticale!
    Mon sous formulaire fait env. 10 lignes! Lorsque j'arrive sur la dernière ligne visible et que je veux rentre des valeurs, automatiquement il crée la ligne nouvel enregistrement! Parfait mais cette ligne est cachée et je suis obligé de prendre l’ascenseur...

    Peut-on forcer le sous-formulaire à voir toujours une ligne de plus que celle su laquelle on se situe par exemple?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Tu regardes combien ton écran peut afficher de lignes dans le sous-formulaire. Soit n

    Tu essaies de trouver un événément qui te permet de déterminer que tu as besoin de voir ta ligne supplémentaire.
    Dans cet événement tu vas à l'enregistrement dcount("*","LaTableDuSousFormulaire)-n du sous-formulaire.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Merci mais mon sous-formulaire est lié à un numéro de contrat qui est une autre table. Donc si je prend les 9 lignes de ma table, c'est pas forcément les dernières de la table...

    Je me relie et j'ai dû mal à me comprendre... mais c'est pas facile à expliquer...

    J'essaie encore

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,
    Travaille donc avec le recordset de ton sous-formulaire.
    Dans l'exemple, le sous-formulaire s'appelle sfMonSousFormulaire
    Pour voir comment ça marche.
    Dans ton formulaire principal , tu crées un bouton et tu associes à son événement sur clic, le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim rst As Recordset, i As Integer
    Set rst = me.sfMonSousFormulaire.Form.Recordset
    rst.MoveLast  'tu vas à la fin et tu remontes
    For i = 1 To 6  'nbre d'enregistrements que tu veux afficher
    rst.MovePrevious
    Next

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Merci je vais essayer ça... et je suis sûr que ça va marcher car toutes vos propositions fonctionnent pour l'instant...

    Mais j'aimerais pas faire un clic dans le formulaire mais j'aimerais que ça fonctionne lors d'une mise à jour d'un champ du sous-formulaire...

    Que faut-il faire?

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Eh bien voici une bonne occasion de lire ceci :
    http://loufab.developpez.com/tutorie...ss/evenements/

    Comme un grand !

    Bonne soirée.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    alors j'ai bouquiné... et fait quelques essais infructueux comme souvent...

    ça paraît plus facile quand on voit la solution...

    J'ai essayé de remplacé le sous-formulaire par le champ si lequel je met l'événement... mais bien sûr ça marche pas!
    Si vous pouvez me donner un nouvel indice?

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim rst As Recordset, i As Integer
    Set rst = Me.Genre.Recordset
    rst.MoveLast  'tu vas à la fin et tu remontes
    For i = 1 To 6  'nbre d'enregistrements que tu veux afficher
    rst.MovePrevious
    Next

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    alors j'ai bouquiné... et fait quelques essais infructueux comme souvent...
    20 minutes, montre en main.
    Tu lis très vite !
    Aussi vite que tu poses tes questions.
    Il n'y a plus de poisson en magasin, il faut apprendre à pêcher.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    C'est simplement une page que j'avais déjà lu et j'ai recherché les informations ciblées sur recordset pour voir si il y avait un truc spécial!

    Pas de soucis je vais continuer à pécher... mais la nuit ça mort pas trop!!!

    Merci quand même

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour Paselo,

    Allez un petit poisson :

    Dans ton sous-formulaire, tu associes à l'événement "Après MàJ" du Champ en question le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rst As Recordset, i As Integer
    Set rst = Me.Recordset
    rst.MoveLast
    For i = 1 To 6  'nbre d'enregistrements que tu veux afficher
    rst.MovePrevious
    Bon appétit.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Merci pour ce petit poisson.. il fait un certain effet! Mais je le maîtrise pas encore... mais c'est peut-être normal car je cherche à faire quelques choses qui n'est peut-être pas vraiment réalisable!

    J'essaie d'expliquer un peu mieux:

    Dans mon sous-formulaire continu, je rendre des valeurs et automatiquement , il me crée la futur ligne "nouvel enregistrement"! donc pas de soucis quand je suis dans les 9 premières lignes mais quand je rentre la 9ème, il crée la 10ème (nouvel enregistrement) Mais cette dernière n'est pas visible!

    Avec votre méthode, j'arrive à faire défiler les lignes suivants les paramètres que j'entre.

    si je lui dit par exemple d'aller sur la 3ème ligne, j'ai un problème au commencement de mon sous-formulaire car il n'y pas de 3ème ligne...!

    En fait pour moi l'idéal, serait d'afficher la ligne en cours chaque fois en ligne numéro 8.... mais là, un autre problème surgit pour les 7 premiers enregistrements...

    Pensez-vous vous qu'il y a une possibilités de faire?

    Merci

    Ps Je ne lâche pas le poisson précédent, je le travaille pour voir ce qu'il a dans le ventre...

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Pas sûr d'avoir bien compris.
    Que veux-tu voir à l'écran ?
    Si, dans tous les cas, tu es content avec au moins le dernier encodé et la place pour encoder le suivant, il te suffit d'atteindre le début et ensuite la fin du recordset.
    Donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rst As Recordset, i As Integer
    Set rst = Me.Recordset
    rst.MoveFirst
    rst.MoveLast
    .

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Alors c'est pas tout à fait cela mais ça approche...

    Je vais essayer d'être clair car mes derniers posts son peut-être confus...

    Dans mon sous-formulaire qui a 10 lignes, Quand je commence, j'ai qu'une ligne et dès que je vais dessus, il me crée en dessous automatiquement la future ligne (N°2)!
    et ainsi de suite! Jusque là, pas de problème!

    Mais quand j'arrive à ma ligne numéro 10 (donc en bas du formulaire) il me crée la ligne N°11 en dessous... donc hors du formulaire... et c'est cela que j'aimerais éviter!

    c-a-d que lorsque je clic sur la 10, j'aimerais qu'il décale pour que la 11 soit visible. mais tout en gardant mon curseur sur le champ de la ligne 10...

    J'espère avoir été un peu plus clair

    Merci

  14. #14
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    dès que je vais dessus
    Qu'est-ce qui déclenche la création de cette nouvelle ligne Mise à jour, focus.. ?
    Poste le code actuel de cet événement

    Quelle est la propriété "cycle" de ce formulaire ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Je pensais que c'était auto... je vais voir.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    en fait je ne trouve rien mais mon sous-formulaire est basé sur une requête qui est basée sur une table!
    Et c'est comme dans une table, lorsqu'on entre une valeur dans une nouvelle ligne, la suivante se crée...

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Je viens de remarquer quelques choses... Dans mon formulaire, la plupart des champs sont des liste déroulantes, et lorsque je sélectionne quelques choses, l’ascenseur ne bouge pas...
    Par contre si à la place de faire le choix par liste déroulante, je rente une valeur au clavier, l'ascenseur bouge comme je voudrais....

    Mais pourquoi???

    Et dans mon sous-formulaire, j'ai un pied de formulaire... j'ai l'impression que ça réagit différemment si je le supprime....

    Je fais pleins de tests....

  18. #18
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Essaie de décrire ton processus complet.
    1° Au départ le Sous-formulaire a une ligne.
    2° je choisis une valeur dans une liste située dans mon formulaire proncipal, il se passe ceci
    .....
    .....

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    La propriétés cycle est sur : Tous les enregistrements

  20. #20
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Cela a pour conséquence que lorsque le curseur se trouve dans le dernier champ (en ordre de tabulation), un <Enter> provoque le passage au 1er champ de l'enregistrement suivant ou d'un nouveau s'il n'y a pas de suivant.
    Ce « suivant » est rendu automatiquement visible.
    Donc des pistes possibles :
    1° faire en sorte que le dernier champ mis à jour par l'utilisateur soit nécessairement le dernier dans l’ordre de tabulation (pas de problème si ce contrôle est tout seul)
    2° placer le cycle du formulaire à « Enregistrement en cours » et détecter (avec du code) que tous les champs sont complétés et provoquer le passage au suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToRecord , , acNewRec
    3° un bouton avec cette même instruction sur le clic (plus commode que 4°)
    4° l’ascenseur

Discussions similaires

  1. [AC-2010] Remplir automatiquement champ sous formulaire tabulaire via liste déroulanete
    Par meriem.alaooui dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/12/2014, 22h52
  2. [AC-2003] Synchronisation barre de défilement sur 2 sous-formulaires
    Par lito74 dans le forum IHM
    Réponses: 1
    Dernier message: 12/07/2011, 13h22
  3. [AC-2003] Comment remplir automatiquement un sous formulaire
    Par sassene dans le forum IHM
    Réponses: 1
    Dernier message: 03/07/2010, 07h51
  4. Réponses: 6
    Dernier message: 12/01/2009, 08h29
  5. Réponses: 9
    Dernier message: 08/04/2007, 22h11

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