Lignes verticales continues dans section détail auto extensible access 2010
1 réponse
Alethas
Bonjour,
je travail sous Access 2010 depuis peu et suis en train de monter un document qui devra être agréable et facile à lire. J'ai plusieurs champ dont le contenu peut varier beaucoup de vide à 30 lignes et donc pour maximiser l'impression ces champ sont auto-extensibles. Par contre cela m'amène la problématique que pour les autres champs qui ont beaucoup moins de contenu, la continuité d'une entrée à l'autre est difficile à suivre. Pour régler ce problème, j'espérais mettre des lignes verticales continues et possiblement un dégradé de couleurs sobres sur ces 10 colonnes seulement (si possible, sinon lignes continues seulement sans dégradé sur l'ensemble). J'ai cru comprendre avec mes recherches que cela serait possible avec du VBA mais je n'y connais rien.
Si vous pouvez m'assister j'apprécierais grandement
Merci à l'avance de voter temps.
Alethas
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
alethas
Le jeudi 28 Septembre 2017 à 15:11 par Alethas :
Bonjour, je travail sous Access 2010 depuis peu et suis en train de monter un document qui devra être agréable et facile à lire. J'ai plusieurs champ dont le contenu peut varier beaucoup de vide à 30 lignes et donc pour maximiser l'impression ces champ sont auto-extensibles. Par contre cela m'amène la problématique que pour les autres champs qui ont beaucoup moins de contenu, la continuité d'une entrée à l'autre est difficile à suivre. Pour régler ce problème, j'espérais mettre des lignes verticales continues et possiblement un dégradé de couleurs sobres sur ces 10 colonnes seulement (si possible, sinon lignes continues seulement sans dégradé sur l'ensemble). J'ai cru comprendre avec mes recherches que cela serait possible avec du VBA mais je n'y connais rien. Si vous pouvez m'assister j'apprécierais grandement Merci à l'avance de voter temps. Alethas
Un détail additionnel est que ma version d'access 2010 semble être en français et donc semble causer des problèmes. lorsque j'entre le code Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) Dim CtlDetail As Control Dim intLineMargin As Integer ' Stephen Lebans 1999 ' Stephen@ lebans.com ' www.lebans.com ' This is the spacing between the right edge of the ' control and the Vertical Seperation Line intLineMargin = 0 ' OK lets draw a vertical line to seperate each field ' for each control in details control ' If your last control on the right does not end on the edge of the section ' you will get a second vertical line. If you need to get around this then you ' can skip drawing this last Vertical Seperation Line in a couple of ways. ' We'll use the control name method Here. Our right most control is named ' TestMemo. IF current control is TestMemo - Do not print Vertical Line For Each CtlDetail In Me.Section(acDetail).Controls With CtlDetail 'If CtlDetail.name <> "TestMemo" Then Me.Line ((.Left + .Width + intLineMargin), 0)-(.Left + .Width + _ intLineMargin, Me.Height) 'End If End With Next 'While we are here lets draw a box around the Detail section With Me Me.Line (0, 0)-Step(.Width, .Height), 0, B End With Set CtlDetail = Nothing End Sub j'ai une erreur de compilation Membre de méthode ou de données introuvable au premier Me.Section(acDetail) j'ai aussi le même message d'erreur lorsque j'essaie avec Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer) ' ====================================================================================== ' Procedure : Module :Report_rpt_ClasseNormal // Procédure : Détail_Print ' DateTime : 06/11/2007 05:17 ' Auteur : Starec - Philippe JOCHMANS - http://starec.developpez.com ' Description : Sur l'évènement Print de la zone détail, nous allons refaire le cadrage ' des zones de texte '======================================================================================= ' ===== déclaration ===== Dim oCtrl As Control ' ===== on enlève le cadre de tous les contrôles ===== For Each oCtrl In Me.Section(acDetail).Controls ' on parcours toutes les zones de texte de la section If TypeOf oCtrl Is TextBox Then ' on teste si ce sont des textbox oCtrl.BorderStyle = 0 ' on rend la bordure invisible oCtrl.BackStyle = 0 ' on rend le fond transparent ' on dessine un cadre autour du contrôle Me.Line (oCtrl.Left, oCtrl.Top)- _ (oCtrl.Left + oCtrl.Width, Me.strRemarque.Height), vbBlack, B End If Next oCtrl End Sub qui lui ferait en théorie un encadré à chacun des controls de la hauteur de la section (si je comprends bien)
Le jeudi 28 Septembre 2017 à 15:11 par Alethas :
> Bonjour,
> je travail sous Access 2010 depuis peu et suis en train de monter un document
> qui devra être agréable et facile à lire. J'ai plusieurs
> champ dont le contenu peut varier beaucoup de vide à 30 lignes et donc
> pour maximiser l'impression ces champ sont auto-extensibles. Par contre cela
> m'amène la problématique que pour les autres champs qui ont
> beaucoup moins de contenu, la continuité d'une entrée à
> l'autre est difficile à suivre. Pour régler ce problème,
> j'espérais mettre des lignes verticales continues et possiblement un
> dégradé de couleurs sobres sur ces 10 colonnes seulement (si
> possible, sinon lignes continues seulement sans dégradé sur
> l'ensemble). J'ai cru comprendre avec mes recherches que cela serait possible
> avec du VBA mais je n'y connais rien.
> Si vous pouvez m'assister j'apprécierais grandement
> Merci à l'avance de voter temps.
> Alethas
Un détail additionnel est que ma version d'access 2010 semble être en français et donc semble causer des problèmes.
lorsque j'entre le code
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Dim CtlDetail As Control
Dim intLineMargin As Integer
' Stephen Lebans 1999
' Stephen@ lebans.com
' www.lebans.com
' This is the spacing between the right edge of the
' control and the Vertical Seperation Line
intLineMargin = 0
' OK lets draw a vertical line to seperate each field
' for each control in details control
' If your last control on the right does not end on the edge of the section
' you will get a second vertical line. If you need to get around this then you
' can skip drawing this last Vertical Seperation Line in a couple of ways.
' We'll use the control name method Here. Our right most control is named
' TestMemo. IF current control is TestMemo - Do not print Vertical Line
For Each CtlDetail In Me.Section(acDetail).Controls
With CtlDetail
'If CtlDetail.name <> "TestMemo" Then
Me.Line ((.Left + .Width + intLineMargin), 0)-(.Left + .Width + _
intLineMargin, Me.Height)
'End If
End With
Next
'While we are here lets draw a box around the Detail section
With Me
Me.Line (0, 0)-Step(.Width, .Height), 0, B
End With
Set CtlDetail = Nothing
End Sub
j'ai une erreur de compilation Membre de méthode ou de données introuvable au premier Me.Section(acDetail)
j'ai aussi le même message d'erreur lorsque j'essaie avec
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
' ======================================================================================
' Procedure : Module :Report_rpt_ClasseNormal // Procédure : Détail_Print
' DateTime : 06/11/2007 05:17
' Auteur : Starec - Philippe JOCHMANS - http://starec.developpez.com
' Description : Sur l'évènement Print de la zone détail, nous allons refaire le cadrage
' des zones de texte
'=======================================================================================
' ===== déclaration =====
Dim oCtrl As Control
' ===== on enlève le cadre de tous les contrôles =====
For Each oCtrl In Me.Section(acDetail).Controls ' on parcours toutes les zones de texte de la section
If TypeOf oCtrl Is TextBox Then ' on teste si ce sont des textbox
oCtrl.BorderStyle = 0 ' on rend la bordure invisible
oCtrl.BackStyle = 0 ' on rend le fond transparent
' on dessine un cadre autour du contrôle
Me.Line (oCtrl.Left, oCtrl.Top)- _
(oCtrl.Left + oCtrl.Width, Me.strRemarque.Height), vbBlack, B
End If
Next oCtrl
End Sub
qui lui ferait en théorie un encadré à chacun des controls de la hauteur de la section (si je comprends bien)
Bonjour, je travail sous Access 2010 depuis peu et suis en train de monter un document qui devra être agréable et facile à lire. J'ai plusieurs champ dont le contenu peut varier beaucoup de vide à 30 lignes et donc pour maximiser l'impression ces champ sont auto-extensibles. Par contre cela m'amène la problématique que pour les autres champs qui ont beaucoup moins de contenu, la continuité d'une entrée à l'autre est difficile à suivre. Pour régler ce problème, j'espérais mettre des lignes verticales continues et possiblement un dégradé de couleurs sobres sur ces 10 colonnes seulement (si possible, sinon lignes continues seulement sans dégradé sur l'ensemble). J'ai cru comprendre avec mes recherches que cela serait possible avec du VBA mais je n'y connais rien. Si vous pouvez m'assister j'apprécierais grandement Merci à l'avance de voter temps. Alethas
Un détail additionnel est que ma version d'access 2010 semble être en français et donc semble causer des problèmes. lorsque j'entre le code Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) Dim CtlDetail As Control Dim intLineMargin As Integer ' Stephen Lebans 1999 ' Stephen@ lebans.com ' www.lebans.com ' This is the spacing between the right edge of the ' control and the Vertical Seperation Line intLineMargin = 0 ' OK lets draw a vertical line to seperate each field ' for each control in details control ' If your last control on the right does not end on the edge of the section ' you will get a second vertical line. If you need to get around this then you ' can skip drawing this last Vertical Seperation Line in a couple of ways. ' We'll use the control name method Here. Our right most control is named ' TestMemo. IF current control is TestMemo - Do not print Vertical Line For Each CtlDetail In Me.Section(acDetail).Controls With CtlDetail 'If CtlDetail.name <> "TestMemo" Then Me.Line ((.Left + .Width + intLineMargin), 0)-(.Left + .Width + _ intLineMargin, Me.Height) 'End If End With Next 'While we are here lets draw a box around the Detail section With Me Me.Line (0, 0)-Step(.Width, .Height), 0, B End With Set CtlDetail = Nothing End Sub j'ai une erreur de compilation Membre de méthode ou de données introuvable au premier Me.Section(acDetail) j'ai aussi le même message d'erreur lorsque j'essaie avec Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer) ' ====================================================================================== ' Procedure : Module :Report_rpt_ClasseNormal // Procédure : Détail_Print ' DateTime : 06/11/2007 05:17 ' Auteur : Starec - Philippe JOCHMANS - http://starec.developpez.com ' Description : Sur l'évènement Print de la zone détail, nous allons refaire le cadrage ' des zones de texte '======================================================================================= ' ===== déclaration ===== Dim oCtrl As Control ' ===== on enlève le cadre de tous les contrôles ===== For Each oCtrl In Me.Section(acDetail).Controls ' on parcours toutes les zones de texte de la section If TypeOf oCtrl Is TextBox Then ' on teste si ce sont des textbox oCtrl.BorderStyle = 0 ' on rend la bordure invisible oCtrl.BackStyle = 0 ' on rend le fond transparent ' on dessine un cadre autour du contrôle Me.Line (oCtrl.Left, oCtrl.Top)- _ (oCtrl.Left + oCtrl.Width, Me.strRemarque.Height), vbBlack, B End If Next oCtrl End Sub qui lui ferait en théorie un encadré à chacun des controls de la hauteur de la section (si je comprends bien)