Bonjour
Comment déterminer et figer la largeur des colonnes dans une feuille de données afin qu'elle ne puisse être modifié qu'en mode création?
Merci
Bonjour
Comment déterminer et figer la largeur des colonnes dans une feuille de données afin qu'elle ne puisse être modifié qu'en mode création?
Merci
Malheureusement je ne pense pas qu'on puisse.
Vérifie en sélectionnant toutes tes colonnes et en faisant 'Figer les colonnes'.
La seule solution que j'avais trouvée c'est d'enregistrer la largeur des colonnes dans un tableau à l'ouverture du formulaire puis en réassignant ces valeurs en fermant le formulaire.
Je ne me souviens plus du code que j'avais utilisé mais je pense qu'il doit être dans une de mes discussions du forum.
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.
Bonjour,
Suivant l'idée de Marot_r, sur ouverture du formulaire, tu enregistres la largeur de la colonne du contrôle TonControle dans la variable LargCol :
et après sur souris relâchée tu restitue cette largeur, comme cela la colonne reste avec la même largeur :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Option Compare Database Dim largCol Private Sub Form_Open(Cancel As Integer) LargCol = Me.TonControle.ColumnWidth End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.TonControle.ColumnWidth = LargCol End Sub
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Merci User, c'est ce genre de code auquel je pensais.
Je n'implanterai pas forcément ton code car il risque de faire faire une crise de nerf à plus d'un utilisateur :-).
Un truc qui serait "cool" ce serait de disposer de la fonction 'largeur automatique'. Celle d'Access qui détermine la taille des colonnes à afficher selon les données qu'elles contiennent comme lorsqu'on double-clique entre deux colonnes.
je n'ai jamais vu de code qui l'appelait, est-ce possible ?
C'est totalement pour le 'fun' je n'ai pas de demande client dans ce sens.
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.
Salut cher Marot_r
Désolé pour le retard...
Oui j'avoue que le code est assez tiré par les cheveux
Sinon, je regarde le code pour appliquer la "largeur automatique" mais ca me paraît pas simple (c'est marrant : tu as toujours des demandes assez originales ). Je te tiens au courant si je trouve
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
ReSalut,
Pour ajuster la largeur des colonnes dans les feuilles de données il y a ce code de Lebans.
Bon test
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Cool !
Merci User.
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.
Bonjour,
Je rebondis sur le sujet : j'ai bien réussi à dimensionner mes colonnes en fonction des données, en utilisant le code de Lebans.
Mais j'aimerai que si l'entête de colonne est plus large que la largeur maxi des données, la taille de la colonne soit ajustée à l'entête.
Bref, il faudrait que je récupère la largeur de l'entête.
Quelqu'un aurait-il une idée de génie ?
Merci.
[Access] Les bases du débogage => ici
J'ai trouvé et voici le code :
La fonction fTextWidth provient du code de Lebans.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Private Function SetColumnsWidth(pFrm As Form) As Integer Dim x As Long Dim lngMaxWidth As Long Dim varTemp As Variant Dim iRec_DAO As DAO.Recordset Dim iLng_Longueur() As Long Dim i As Integer Dim iCtl As Control Set iRec_DAO = pFrm.RecordsetClone iRec_DAO.MoveFirst ReDim iLng_Longueur(iRec_DAO.Fields.count - 1) For i = 0 To iRec_DAO.Fields.count - 1 For Each iCtl In pFrm If iCtl.ControlSource = iRec_DAO.Fields(i).Name Then iLng_Longueur(i) = fTextWidth(pFrm, iCtl.Name) End If Next Next Do While Not iRec_DAO.EOF For i = 0 To iRec_DAO.Fields.count - 1 varTemp = iRec_DAO.Fields(i).Value x = fTextWidth(pFrm, varTemp) If x > iLng_Longueur(i) Then iLng_Longueur(i) = x Next iRec_DAO.MoveNext Loop For i = 0 To iRec_DAO.Fields.count - 1 For Each iCtl In pFrm If iCtl.ControlSource = iRec_DAO.Fields(i).Name Then iCtl.ColumnWidth = iLng_Longueur(i) End If Next Next End Function
Prochaine étape :
- Positionner le formulaire en haut de l'écran et plus ou moins à gauche en fonction de la somme des largeurs des colonnes
- Dimensionner la largeur du formulaire en fonction de la somme des largeurs des colonnes.
Si certains se sont déjà penchés sur le problème, je suis preneur.
Merci.
[Access] Les bases du débogage => ici
Bonjour, Kloun
En jouant avec le Docmd.Movesize et un peu d'arithmétique,
tu devrais arriver à tes fins ...
"Always look at the bright side of life." Monty Python.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager