Appeler un formulaire
Résolu
Tessel75
-
Tessel75 -
Tessel75 -
Bonjour,
Existe-t-il une commande pour que, lorsqu'un formulaire est affiché en mode "formulaire Continu", et qu'on sélectionne un enregistrement, la liste des enregistrements remonte de telle sorte que ce soit l'enregistrement sélectionné qui apparaisse en haut de l'écran?
Il y a la commande "Scroll", mais je ne sais pas du tout comme elle fonctionne.
Merci pour vos connaissances.
Existe-t-il une commande pour que, lorsqu'un formulaire est affiché en mode "formulaire Continu", et qu'on sélectionne un enregistrement, la liste des enregistrements remonte de telle sorte que ce soit l'enregistrement sélectionné qui apparaisse en haut de l'écran?
Il y a la commande "Scroll", mais je ne sais pas du tout comme elle fonctionne.
Merci pour vos connaissances.
Configuration: Windows / Firefox 88.0
A voir également:
- Appeler un formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Appeler en privé - Guide
- Formulaire de reclamation instagram - Guide
- Ecouter le repondeur de quelqu'un sans l'appeler ✓ - Forum Mobile
12 réponses
Bonjour,
Ai rien trouve sur votre commande "Scroll". Vous voulez arriver a quoi en mettant l'enregistrement selectionne en premiere ligne?
Ai rien trouve sur votre commande "Scroll". Vous voulez arriver a quoi en mettant l'enregistrement selectionne en premiere ligne?
Merci de ta réponse.
Il s'agit d'un formulaire dont le champ principal est de type Mémo, càd très grand. Aussi quand le pointeur est en dehors de ce champ, il est mis en taille réduite, et il s'agrandit jusqu'à occuper presque toute la fenêtre quand on pointe dessus, et reprend sa taille initiale quand on en sort. De la sorte, à l'ouverture du formulaire en modeContinu , le champ "Mémo" étant replié, je peux voir 5 à 6 enregistrements/formulaires en même temps et choisir celui sur lequel je veux travailler.
Le problème est que, lorsque le champ Mémo se déploie, tous les formulaires voient leur champ Mémo se déployer en même temps. Aussi, si le formulaire sélectionné n'est pas en haut de la fenêtre, je ne le vois plus, mais je vois uniquement celui qui est en haut de la fenêtre parce que tous ont été abaissés de la hauteur du/des champ(s) Mémo de/des l'enregistrement qui le précède(nt).
C'est la raison pour laquelle je voudrais une commande qui relève automatiquement l'enregistrement sélectionné en haut de la fenêtre, pour que lorsque je le choisis, c'est bien celui-là qui apparaitra au milieu de la fenêtre et non pas son voisin.
Pour dire, le "Détail" du formulaire passe de 3,8cm de hauteur à 13,75cm et le champ-Mémo de 1,4cm à 11,5cm
En espérant avoir été un peu clair dans mes explications.
Merci
Il s'agit d'un formulaire dont le champ principal est de type Mémo, càd très grand. Aussi quand le pointeur est en dehors de ce champ, il est mis en taille réduite, et il s'agrandit jusqu'à occuper presque toute la fenêtre quand on pointe dessus, et reprend sa taille initiale quand on en sort. De la sorte, à l'ouverture du formulaire en modeContinu , le champ "Mémo" étant replié, je peux voir 5 à 6 enregistrements/formulaires en même temps et choisir celui sur lequel je veux travailler.
Le problème est que, lorsque le champ Mémo se déploie, tous les formulaires voient leur champ Mémo se déployer en même temps. Aussi, si le formulaire sélectionné n'est pas en haut de la fenêtre, je ne le vois plus, mais je vois uniquement celui qui est en haut de la fenêtre parce que tous ont été abaissés de la hauteur du/des champ(s) Mémo de/des l'enregistrement qui le précède(nt).
C'est la raison pour laquelle je voudrais une commande qui relève automatiquement l'enregistrement sélectionné en haut de la fenêtre, pour que lorsque je le choisis, c'est bien celui-là qui apparaitra au milieu de la fenêtre et non pas son voisin.
Pour dire, le "Détail" du formulaire passe de 3,8cm de hauteur à 13,75cm et le champ-Mémo de 1,4cm à 11,5cm
En espérant avoir été un peu clair dans mes explications.
Merci
bonjour,
Merci à f894009 pour son excellent question!
Je pensais que plusieurs enregistrements étaient visibles, et que Tessel75 voulait mettre en haut un de ces enregistrements.
Je pense maintenant avoir compris que Tessel75 veut simplement rendre visible un des enregistrements qui n'est pas visible.
Si j'ai compris, je pense que c'est assez simple à réaliser.
Merci à f894009 pour son excellent question!
Je pensais que plusieurs enregistrements étaient visibles, et que Tessel75 voulait mettre en haut un de ces enregistrements.
Je pense maintenant avoir compris que Tessel75 veut simplement rendre visible un des enregistrements qui n'est pas visible.
Si j'ai compris, je pense que c'est assez simple à réaliser.
Si je comprends, tu essayais de positionner l'enregistrement choisi en haut, avant de tout agrandir. Je ne vois pas comment faire cela.
Par contre, il est possible, je pense, de mémoriser l'enregistrement choisi, de tout agrandir, et ensuite de se positionner sur l'enregistrement mémorisé, de façon à ce qu'il soit visible.
La même technique est utilisée pour rafraichir un formulaire et ensuite se positionner sur l'enregistrement courant, ou, pour se positionner sur un enregistrement recherché.
Par contre, il est possible, je pense, de mémoriser l'enregistrement choisi, de tout agrandir, et ensuite de se positionner sur l'enregistrement mémorisé, de façon à ce qu'il soit visible.
La même technique est utilisée pour rafraichir un formulaire et ensuite se positionner sur l'enregistrement courant, ou, pour se positionner sur un enregistrement recherché.
Bonjour,
Pas tout compris. Pour moi, c'est impossible de placer un enregistrement particulier en debut par un code VBA gerant la barre de defilement verticale.
Par contre avec un filtre sur click du champ, vous n'aurez que cet enregistrement sur le formulaire.
Ex: Formulaire Liste de Taches, source requete Tâches en cours sur une Table Tâche avec une cle primaire(Obligatoire). Marche aussi sur formulaire lie directement a un table avec cle primaire
Procedure evenementielle sur le champ Status du formulaire
Pas tout compris. Pour moi, c'est impossible de placer un enregistrement particulier en debut par un code VBA gerant la barre de defilement verticale.
Par contre avec un filtre sur click du champ, vous n'aurez que cet enregistrement sur le formulaire.
Ex: Formulaire Liste de Taches, source requete Tâches en cours sur une Table Tâche avec une cle primaire(Obligatoire). Marche aussi sur formulaire lie directement a un table avec cle primaire
Procedure evenementielle sur le champ Status du formulaire
Private Sub Status_Click() If Enreg <> 0 Then DoCmd.ShowAllRecords 'tous enregistrements Else Enreg = Me.ID 'numero de la cle de l'enregistrement du champ selectionne DoCmd.ApplyFilter , "[Tâches en cours].ID=" & Enreg 'filtre End If End Sub
Merci pour ta réponse.
Pour te figurer la chose, imagine un dictionnaire avec les mots et les définitions avec des exemples. Il y a un champ/contrôle Mot et un champ/contrôle Définition
Tu sélectionnes un mot et tu pointes le champ/contrôle Définition, alors il prend sa dimension de travail pour découvrir le texte de la définition, les exemples, les synonymes, etc. Quand on sort de ce contrôle, il se replie, et on peut en sélectionner un autre. C'est pour ça que pour moi, il est important de garder l'ensemble des enregistrements visibles en même temps, et j'ai peur qu'avec ta méthode de sélection d'un enregistrement, je ne puisse plus revenir à ma présentation en mode continu.
Pour te figurer la chose, imagine un dictionnaire avec les mots et les définitions avec des exemples. Il y a un champ/contrôle Mot et un champ/contrôle Définition
Tu sélectionnes un mot et tu pointes le champ/contrôle Définition, alors il prend sa dimension de travail pour découvrir le texte de la définition, les exemples, les synonymes, etc. Quand on sort de ce contrôle, il se replie, et on peut en sélectionner un autre. C'est pour ça que pour moi, il est important de garder l'ensemble des enregistrements visibles en même temps, et j'ai peur qu'avec ta méthode de sélection d'un enregistrement, je ne puisse plus revenir à ma présentation en mode continu.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Avec votre fichier, je pourrai peut-etre trouver une solution car je pige pas comment il fonctionne.
Avec votre fichier, je pourrai peut-etre trouver une solution car je pige pas comment il fonctionne.
Désolé, ce n'est pas possible, il est trop gros et trop compliqué avec des codes VBA imbriqués. Même en essayant de l'alléger, il faudrait trop d'explications pour indiquer toutes les manœuvres.
Je peux juste essayer de construire un formulaire-type avec un contrôle à dimensions variables. Mais un peu de patience, s'il te plait, il me faut un certain temps.
Je peux juste essayer de construire un formulaire-type avec un contrôle à dimensions variables. Mais un peu de patience, s'il te plait, il me faut un certain temps.
ça y est, c'est fait! Voir la pièce jointe :
https://cjoint.com/c/KFdno1mVIGC
Pour l'utilisation: Ouvrir le formulaire F_NotesRapides, il s'ouvre en mode continu.
Le contrôle qui pose problème est celui étiqueté "Citation et Commentaires"
Pour voir le problème que j'évoque, il faut se mettre qqpart au milieu de l'ensemble des enregistrements et pointer le contrôle "Citation et Commentaires", alors il s'agrandit et si l'enregistrement sélectionné n'est pas celui qui est en haut, il disparait au profit de celui qui était en haut.
Bonne visite !
https://cjoint.com/c/KFdno1mVIGC
Pour l'utilisation: Ouvrir le formulaire F_NotesRapides, il s'ouvre en mode continu.
Le contrôle qui pose problème est celui étiqueté "Citation et Commentaires"
Pour voir le problème que j'évoque, il faut se mettre qqpart au milieu de l'ensemble des enregistrements et pointer le contrôle "Citation et Commentaires", alors il s'agrandit et si l'enregistrement sélectionné n'est pas celui qui est en haut, il disparait au profit de celui qui était en haut.
Bonne visite !
Re,
Passez par le site https://mon-partage.fr/, car petit probleme de bloquage de votre fichier au telechargement(!!)
Passez par le site https://mon-partage.fr/, car petit probleme de bloquage de votre fichier au telechargement(!!)
ceci ne fonctionne pas, je continuerai à essayer, cela en inspirera peut-être d'autre:
Private Sub CitationRapide_GotFocus() Dim rs As Recordset, np As Integer np = Me.NoPage Set rs = CurrentDb.OpenRecordset("select page from T_Notes where page=" + CStr(np), dbOpenDynaset) rs.MoveFirst Debug.Print rs!Page, rs.Bookmark Call AgrandissementCitation Me.Bookmark = rs.Bookmark End Sub
@Yg_Be , Merci pour ta réponse.
Le problème est aussi que, étant un pur autodidacte en VBA, je n'ai pas trop l'habitude de ce genre d'expression du code. Aussi il y a-t-il pas mal d'expression que je ne comprends pas, et ne sais pas ce qu'elles ordonnent. Je me permets donc de demander des explications.
CurrentDb.OpenRecordset("select page from T_Notes where page=" + CStr(np), dbOpenDynaset)
Pourquoi "select page", alors que le formulaire dont les données sont celles de T_Notes, est déjà ouvert, et le pointeur est sur le contrôle à agrandir ?
Par ailleurs qu'est ce que "CStr(np), et aussi "dbOpenDynaset" ?
Que commande la ligne "rs.MoveFirst" ?
Et de même "Debug.Print rs!Page, rs.Bookmark"
Merci
Le problème est aussi que, étant un pur autodidacte en VBA, je n'ai pas trop l'habitude de ce genre d'expression du code. Aussi il y a-t-il pas mal d'expression que je ne comprends pas, et ne sais pas ce qu'elles ordonnent. Je me permets donc de demander des explications.
CurrentDb.OpenRecordset("select page from T_Notes where page=" + CStr(np), dbOpenDynaset)
Pourquoi "select page", alors que le formulaire dont les données sont celles de T_Notes, est déjà ouvert, et le pointeur est sur le contrôle à agrandir ?
Par ailleurs qu'est ce que "CStr(np), et aussi "dbOpenDynaset" ?
Que commande la ligne "rs.MoveFirst" ?
Et de même "Debug.Print rs!Page, rs.Bookmark"
Merci
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
ceci semble fonctionner, après avoir ajouté au formulaire un contrôle, txtid, contenant la clé primaire de la table:
Private Sub CitationRapide_GotFocus() Dim rs As Recordset Set rs = Me.Recordset rs.FindFirst ("NoNotesrap=" + CStr(txtid)) If Not rs.NoMatch Then Debug.Print rs!NoNotesRap, rs!Page, CStr(rs.Bookmark) Call AgrandissementCitation Me.Form.Bookmark = rs.Bookmark 'Me.Refresh Me.CitationRapide.SetFocus Else Debug.Print "oups" End If End Sub
@Yg_Be
Bravo, ça passe exactement comme je voulais, excepté pour la ligne
"rs.FindFirst ("NoNotesrap=" + CStr(txtid))",
que j'ai été obligé de supprimer parce qu'elle bloquait la procédure. Cela ne semble pas avoir affecter l'enchainement des ordres.
Il me renvoie "Erreur de syntaxe , Opérateur absent".
Maintenant pourrais-tu me détailler un peu la succession des commandes, parce que j'ai plusieurs autres formulaires et sous-formulaires de même type dans ma base, et je voudrais pouvoir reproduire la commande, or là, je suis bien content que ça s'exécute mais je n'y comprends rien.
Merci pour ta complaisance.
Bravo, ça passe exactement comme je voulais, excepté pour la ligne
"rs.FindFirst ("NoNotesrap=" + CStr(txtid))",
que j'ai été obligé de supprimer parce qu'elle bloquait la procédure. Cela ne semble pas avoir affecter l'enchainement des ordres.
Il me renvoie "Erreur de syntaxe , Opérateur absent".
Maintenant pourrais-tu me détailler un peu la succession des commandes, parce que j'ai plusieurs autres formulaires et sous-formulaires de même type dans ma base, et je voudrais pouvoir reproduire la commande, or là, je suis bien content que ça s'exécute mais je n'y comprends rien.
Merci pour ta complaisance.