Bonjour
Je cherche à dimensionner un sous-formulaire en fonction de la taille et du nombre de contrôles présent dans celui-ci. Pour celà, j'ai codé cette focntion :
Le problème c'est que pour certains formulaires çà marche, et d'autres non.
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 Private Sub largeurtableau(subform As String) Dim larg, nbrec As Integer Dim ctl, sfr As Control Dim rst As DAO.Recordset 'Set rst = sfr.Form.Recordset.Clone Set sfr = Me.Controls(subform) larg = 0 For i = 0 To sfr.Form.Section(acDetail).Controls.Count - 1 larg = larg + sfr.Form.Section(acDetail).Controls(i).Width Next sfr.Width = larg Debug.Print sfr.Form.Recordset.RecordCount sfr.Form.InsideHeight = (sfr.Form.Section(acDetail).Height * sfr.Form.Recordset.RecordCount) + sfr.Form.Section(acHeader).Height + sfr.Form.Section(acFooter).Height sfr.Height = sfr.Form.WindowHeight End Sub
Le problème vient du recordsetcount : pour certains formulaires, j'ai bien le bon nombre d 'enregistrements, mais pour d'autres, il me renvoie toujours 1.
Pourtant je ne vois de différence entre mes différents formulaires, de ce point de vue-là. Le type de recordset est le même : Feuille de réponse dynamique, les paramètres sont aussi les mêmes. Mis à part la requête qui change : ceux sur lesquels çà ne marche pas sont des requêtes croisées dynamiques (avec la clause TRANSFORM), mais ce serait bizarre que le problème vienne de là.
Merci de votre aide
Partager