Draw expanding lines in report detail

This code comes from Stephen Lebans, http://www.lebans.com/Report.htm

This code draws lines around each field in the report detail and expands with the text.

	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
        '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


Sponsored Links:

I have two users that want different amounts of blank space between each line in the detail section of a report. Is there a way to change the area between the detail and footer programatically instead of creating 2 copies of the form, one for each user?


I am a novice at this.

I have created a report using the Report Wizard. I re-arranged it so it consists of Member Name in the Page header, and four columns of details in the Details section with a signature in the ReportID footer section. Relationship structure is Member table related to Courses table via a link table and Instructor table realted to the Course table.

I have managed to make the appropriate horizontal lines using the Sorting and grouping function want the Report of Member Details to be contained in a table with four columns with vertical lines. How do I do this?

A report that has these items in the detail line:


The Interpretation is a text box whose value is dependent on what on what the value of the AnalysisName and AnalysisResult are.

i.e. If AnalysisName = Nitrate and AnalysisResult > 10 then Interpretation = "Unsafe! Treatment suggested."

Else Go on to the next set of evaluations.

I tried to do it as a function in a module named Interpretation() but that returned the same value for each line in the detail portion.

I have created a catalog using a report in access. I want to create an order
sheet that mimics the layout of the catalog to acompany the catalog for the
sales team.
I have 5 rows and 5 columns of products (in rectangular boxes) per page on the catalog. I would like to create exaclty the same layout for the order sheet but i would like to arrange them so that the first row of the first page of the catalog is in box 1.1 (column1 row 1). So it will contain 5 details ordered the same as the catalog. The next box 2.1 will have the same for the second row of the catalog. I would like to end up with column 1 as page 1 of catalog and col 2 as page 2 of catalog ect. etc.

How can create 5 items in the detail section in a box and have it go to the next detail for each and then have it continue to cycle through when the report is generated?

Or is there an easier way?

Thanks for your suggestions,

Iím working with a data base designed for the textual analysis of Ancient Greek documents (now in its 5th year of development).

One of the problems that I have yet to resolve fully is a way to create grammatical data output (a report) in a rather unusual format.

Specifically I need to display a matrix of six different verb tenses (as column headings) and six different person-number classifications as rows.

I have figured out how to make words appear under the correct column (tense) heading. My problem is the rows (detail sections).The person-number classifications (detail records) are 1 per sing, 2 per sing, 3 per sing 1 per plu 2 per plu and 3 per plu. These classifications have already been tagged to each verb in the 400,000 item database and so it is easy enough to extract them.

My issue is this: For each verb selected for reporting I want the report to show all six person-number classifications as labels on the left-most column and the verb forms under the six tense columns. What is tricky is that I want a blank box to appear in the detail section of the report even when there is no data that matches the selection criteria for that particular verb.

My objective is to produce single page reports (for each verb) that show not only the word forms that are actually present but that will also display blank boxes where a word form WOULD BE if it existed in the textís data base. The purpose of all this is to produce pages that are uniform in appearance.

If this is confusing, I can provide a screen shot of how the report should look.

Thanks for the help.


Hi I am trying to import word document object in the detail section of the report using an unbound data frame.
When doing this the document does not retain the look of the original document.

And is a royal pain to get to look half way right and still when printing it does not fill the page as it does in word.

Am I going about this wrong?

I really need a simpler way to get these documents into access and retain the original look.

The reason I need this is to eliminate making peel and stick labels that have to be put on these documents each and every month.
With access I just use two text boxes and a table that contains the label info which does not change from month to month but is a pain to have to peel and stick well over a hundred labels each month.

If anyone can help I really would appreciate it.


In the detail section of my report, I recently added a second row which has only 1 text field. When the value of the textbox in the 2nd row is null, I want the total row height equal to just the first row. When the value in the textbox in the 2nd row is not null, then the total row height is equal to row 1 and 2. I tried to make the textbox in the second row invisible when it had a null value thinking that when it was null, the report would shrink to the first row height, but that didn't seem to work. I am only a beginner with VBA, but any suggestions are appreciated.

I have a report that includes info on spans between cities. I need a way to have the ending city from the 1st line, in the report, become the beginning city for the 2nd line and so on. I know I could add another field in the Table, but, I hope I can achieve this in the report instead.

I would like to create columns in a report, but in the detail section only (allowing the Group Header control to be any size I like and to be above the detail section) Is there a way to do this? I am using both A2003 and A2007 with W7 OS.

Can you pull and ID number from each line in the Detail Section of a report to use in a SQL statement in a control of the same row?

I would like a report to underline every third record returned from its source query. If I draw a line in the detail section of the report where the records display, the line is drawn after each record. After playing with the grouping settings, I've been able to get lines drawn at seemingly random intervals, however not every third record. Any suggestions would be greatly appreciated.

- Chappy


I have create a standard letter in within my contact database, this is to send to all my clients. But some client addressess are shorter than others, for example one would have 1 Accacia Ave, London, EC1....Whereas another client would have 2 Accacia Ave, Abbey House, London, EC1

Therefore, the four lines of the second address creates a blank line in the first address, as there is no data in that address.

I have tried IIF NULL then City (Sic), but obviously on the second line on the first address this will put London on the line where it is blank/NULL....but then how do I not show the fourth line London, as this would be duplicated with the IIFNULL, and then how do I bring the postal code up a line as well?

I have looked at Northwind, but even on there they have line spaces!!!

Can anyone point me in the Direction of solving the problem?

Afternoon all,

I'm currently designing a status report that outlines completed milestones in an ongoing project.

The situation: There are three types of milestones that need to be tracked, and as such, each column of completed milestones is separated by a line (inserted from the toolbox). Each of these lines reaches from the top of the "details" section to the bottom. Each milestone column is a subreport capturing the different types of milestones. All are bound to queries that display specific ID numbers from the milestones table.

The problem: When the "milestones" column is longer than the details section, it (as planned) pushes the details section down to accomodate the length in the report. The lines, however, do not stretch to accomodate the new length of the columns.

I've tried putting the separating line in the subreport itself, so that it will expand with the subreport; however, this only works with the longest column. The other two lines only stretch as far as their individual column.

Is there any way I can keep my column-dividing lines, going from the top of the details section to the bottom, regardless of subreport length? Any suggestions would be more than welcome. And please let me know if I've made absolutely no sense.

Many thanks.

Hi Guys; hope you're all well!!

I have a 'snaked' column report with headings and subheadings related to groups.

What I'd like to do, which sounds simple enough, is to draw vertical lines from the header to the footer section of the report, to divide the page up into something that resembles an invoice... (with vertical columns for timesing)

I have cribbed the following code from a Microsoft example, which is meant to do the trick when printing (i.e. the lines are visible in print preview)..

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Dim lngColor As Long

Me.ScaleMode = 3 'Pixels
Me.DrawWidth = 5 'in Pixels

lngColor = RGB(204, 204, 204)

Me.Line (0, 0)-(0, Me.ScaleHeight), lngColor
Me.Line (162, 0)-(162, Me.ScaleHeight), lngColor
Me.Line (2070, 0)-(2070, Me.ScaleHeight), lngColor
Me.Line (2775, 0)-(2775, Me.ScaleHeight), lngColor
Me.Line (3072, 0)-(3072, Me.ScaleHeight), lngColor
Me.Line (3696, 0)-(3696, Me.ScaleHeight), lngColor
Me.Line (4640, 0)-(4640, Me.ScaleHeight), lngColor

End Sub

But this only seems to include the lines in whatever section I paste it in?

So, i pasted in every section, but where the detail section doesn't reach the bottom of the page, a gap is left to the footer?!

Any help would be much appreciated. Im using Access 2010.


Help - need to draw a table in access using verticle lines drawn dynamically at report run time using the On-Page event.

Trouble is I don't know the verticle length in advance. I can use a verticle 'bottom' value = 18.3 to draw a line to just above my footer, but need it to stop at bottom of 'detail' section when the size of 'detail' and 'footer' are using 'can grow' = yes.

I have re-produced my feeble attempt below - can anybody tell me what I am doing wrong !

Private Sub Report_Page()
Dim asglPos(20) As Single
Dim sglTop As Single, sglBottom
'Set up Positions for Boxes
asglPos(0) = 0
asglPos(1) = 4.1
asglPos(2) = 11.5
asglPos(3) = 16.5
asglPos(4) = 24#
asglPos(5) = 26.4

If Me.Properties("acHiddenCurrentPage") = 1 Then

sglTop = (Me.Section(1).Height / 567) + 1#
sglTop = 1#
End If

'sglBottom = 18.3 ' to draw to fixed footer - works OK
'but need 'dynamic' length
sglBottom = (Me.Section(acPageHeader).Height + Me.Section(acDetail).Height) / 567 + 1#

Me.DrawWidth = 1
'Always draw Vertical Lines
For intCount = 0 To 5
Me.Line (asglPos(intCount) * 567, sglTop * 567)-(asglPos(intCount) * 567, sglBottom * 567)
Next intCount
Me.Line (0, sglTop * 567)-(asglPos(5) * 567, sglTop * 567)
Me.Line (0, sglBottom * 567)-(asglPos(5) * 567, sglBottom * 567)

End sub

Any help would be appreciated !!

Thanks in advance.

I have a report that lists customer name, total product authorized, and total product on hand in the detail section. I need to know how to hide the detail line for a customer if BOTH the authorized and on hand are 0. If there is a number in either field then the line should show on the report.

This report is pulled from a query that is linked to 13 other reports so I need to make the change at the report level and not to the query.

Any suggestions?

I have 4 memo-fields - strengths,evidence,weaknesses and action. On my report I want to draw a line to seperate them: strenghts &evidence are on the top (left and right) and weaknesses& action are on the buttom (left and right).

I found some examples to draw a line but my problem is that the detial in each field are very long may be 2 pages for strenghts and evidence and 2 pages for weaknesses& action. I want to draw lines to cover all my texts not just only the first page. See the attached.

Thank you very much!

i have a report in which i am drawing vertical lines between diffrent columns. In the end a horizontal line should come (I HAVE THAT IN IN PAGE FOOTER).nOW THE PROBLEM IS THAT HOW TO DRAW VERTICAL LINE FROM PAGE HEADER TO PAGE FOOTER?? I TRIED IT BUT SOMETIME IT TOUCHES PAGE FOOTER SOMETIMES JUST HALF WAY.


Drawline Me.Text20.Left, thick_line

Private Sub Drawline(leftcord As Single, thickness As Integer)
Dim bottomcord As Single
Dim color As Long
bottomcord = 22 * 1480
color = RGB(0, 0, 0)
Me.DrawMode = 1
Me.DrawWidth = thickness
Me.DrawStyle = 0
Me.Line (leftcord, 0)-(leftcord, bottomcord), color
End Sub



This has to be the most complicated problem I have ever had with reports in Access and it is a problem that has plagued me for years. I am hoping someone can help me out with this one.

I am trying to print an invoice. For each of the fields in the detail section I want to separate them with a line. I have used the following code to create a verticle line running from the top of the detail section to the bottom which ends when it gets to the last record in the detail section.

	Dim Color As Long

    Me.ScaleMode = 5
    Me.DrawWidth = 0
    Color = RGB(128, 128, 128)
    Me.Line (0.125, 0)-(0.125, 22), Color
    Me.Line (7.9583, 0)-(7.9583, 22), Color

The problem is that the invoice totals (subtotal, taxes, grand total etc.) are calculated in the page footer which appears at the bottom of the report and there is a big blank space between where the detail section ends and the page footer starts. Below is an example.

I have checked and when the report jumps to more than 1 page the detail continues on the second page as normal, and the vertical lines end when the data ends. As you can see the detail section could end at any point on any page so I am thinking the way to do it is to use a group footer (which falls between the detail section and page footer) and change the height of it dynamically to calulate the distance from the bottom of the detail section to the top of the page footer and set that as the height of the group footer.

I have tried everything under the sun to make that space fill in with something and to no avail. Any help would be greatly appreciated!!

Sean Lannigan
IT Administrator
Hetek Solutions Inc.