2 columns on report Results

I am looking to create a 2 page report per individual. On the second page of the report, I want to have two columns.

Is there a way to accomplish this? I'd love to be able to specify which section (according to a SectionID in a table) which column that particular section would go in.

Do I need to create subreports to accomplish this? If so, how do I specify that I want the columns on only page 2?

To further piggyback on this, can I create two reports (Page 1 & Page 2) and then somehow create a PDF by combining the two reports based on the MemberID?


I need to produce a report with the data arranged in 2 columns on the page (like the columns in a newspaper.

There needs to be grouping and headers/footers

Is this possible in an access report or will I have to take the data across to Word? - If I take it across to Word, am I going to be able to preserve headings/grouping?


I should start out by saying I normally develop in Java but my manager ask me to create an Access application for tracking equipment. So this might be a dumb question. My problem is with a report. I am bringing a query back that shows all of the equipment given to an employee. However the user wants the list to be in two columns side by side and I am not sure how to do this in Access.

So kind of whats below,

Equipment Assigned To banny04

result1 | result2
result3 | result4

and so on.

Any help would be appreciated.

PS I am also working with Access 07

Hi guys,

In A2K.

I have created 2 columns on a report set the page to landscape inserted page breaks and displayed the data in recordsets absoulutly fine.

Left column shows header details with the records listed below, right column shows just the records without headers. I have tried grouping the headers, but that just returns headers on each record which I don't want. I have even tried all the Help tips to no avail.

Essentially I am looking to produce two columns of data on a landscape report with each column showing the headings with the data below. As I said, left column works fine, right column shows no headers.

Many thanks.
Struggling of Sandhurst !!

Hey guys! I hope you can help me with this! I have a feeling, from all the hundreds of forums I've read, that the answer is NO, not possible, but hey, I'll ask anyway!

Is it possible to have page 2 of a report (and page 3 and on if longer) be 2 or 3 columns when page 1 is NOT!?!?!?!


In a 2 column sub-report I wish to force a break from the first column to the second column based on a computed variable. I tried page-break but did not do what I want.

Please nudge me in the right direction.
Thanks, Larry

Hi All,

I'm producing a report which is split into 2 columns on the page (7.5cm wide each). I have a sum in the Report Footer to add up the total of all the figures in the report. Even though there is enough space on the first page to print the report footer, it is printing it on the next page.

I'm assuming it has something to do with the fact that I am using columns - the width of the data in the report footer is less than 7.5cm.

I've tried everything I can think of in the properties and sorting & grouping but the only way I can get the sum to print on the right page is to put it in the report header so that it is at the top of the page, which doesn't look right. Ideally, I would like it at the bottom right of the page (at the end of the last column.

Any ideas? Thanks in advance


i have report with 2 column on data. but when i preview/print the report, it just show 1 table header.
can i make my form to show header on 1rst & 2nd column?


This is my first post to these forums, please be gentle with me. Also, I know very little about Access reporting, having avoided the topic for all these years.

My company wants to mail a listing of work sites, by state (i.e. geographic region), to all of our living clients. This is important because most of our clients will be dead within a year and it is time sensitive information. Their perusal of the list could result in additional income for them and/or their heirs at a time when they need it most.

Our site list is approximately 125K records. Additionally, the "man" (aka the president of my company) wants to send the list on paper, since many of our clients will be unable to get out of bed to go to a computer. Additionally, the "man" wants to segregate the report by state, only sending the list for the states a client has been to. Also, realize the clients are old and may have vision problems or may have problems holding reams of paper for long periods of time.

I had recommended that we send our data set out to a printer and have them do the work. I think that was kicked out because of the confidential nature of our data set.

I have been experimenting with Access' built in reporting and have come across the following issues:Performance...although the underlying query returns quickly within SQL Analyser/Access, it takes forever to generate a report on our largest state (California). During that time, my PC slows to a crawl. Field wrapping...Some of our site names are quite long, added to the fact that I'm concatenating several fields to comprise the name. As such, the names run off the edge of the page/column, causing lost data when using Access reporting. This is the problem that Excel solves by using the "Wrap Text" formatting property. I'd like to use something like that from within Access. Number of Columns...(not database fields, columns on a page) when using the Access tools, seems you can only have either 1 or 2 columns on a page and that the layout of the page is inflexible (or, more likely, escapes my ability to understand it). To save paper and reduce the weight of the paper being held by our clients, I have decided to split the report into 2 columns...though Access reporting seems to kind of do this, it doesn't seem repeatable/customizable. I need something like Publisher's links, in conjunction with Excel's wrap text to make this work right. If it weren't for the column limitation, I would just use Excel and be done with it. Is there any way to configue Access reporting (or even Excel) to do this? Cell shading...I'd like to shade every other entry, like the cell shading in Excel, to help the client understand which row they're on. Any way to do this in Access reports?
Any advice anyone can give me on flexible pagination of large data sets as described above will be welcome and praised! I'm not opposed to using different tools, coding, etc. to get this done before the clients no longer need it.

One more requirement...I cannot do large amounts of this by hand, it needs to be reproducible by a non-IT person, after the initial setup.

Not that it matters much, but to be thorough:

There is an index on State.

Sample data:
ID, SiteName, City, State
1, My first site, Fresno, CA
2, My second site, San Francisco, CA
3, My third site, Tampa, FL
4, My fourth site, Dallas, TX
5, My fifth site, London, England
...etc...do this another 124,995 times.

select Sitename + '--' + COALESCE (City, 'Unknown') + ', ' + State
from vMySiteDataSet
where State = 'CA'
order by City, Sitename

This query returns over 11K results in under 5 seconds. My Access report takes over 25 minutes (possibly longer, I don't pay attention...with 100% cpu utilization) to present it incorrectly.

Please to help me! This is not classwork, it is a legitimate professional request for assistance from a contributing member of this community.

Hi All,

I have a report that calculates variances. For example, there are 2 columns on my report. One has # of Hours from one system and the other column shows # of Hours from a second system. I then have a column that displays any variance that may occur.

When there is a variance, the report runs just fine. But if the Variance amount is = 0, then I receive an error message saying:

Run Time Error '2427':

You have entered an expression that has no value.

And when I click Debug, It highlights the area below in BLUE in Visual Basic.

Option Compare Database
Option Explicit

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
If Me.ctl_Variance = 0 Then
Me.ctl_Variance.ForeColor = 0
Me.ctl_Variance.ForeColor = 255
End If
End Sub

Private Sub Report_Open(Cancel As Integer)
End Sub

Any recommendations on how to resolve this would be greatly appreciated.

I have a sub report that is 2 columns with a fixed height and a Down, Then Across layout. I then have the report with a Group on SectionID in the subreport.

Is there anyway I can say, "Fit all the data within the section on it's own column or move it over to the next column?"

On the SectionID Header I can Force a New Page, but I really just want to force a new column.

Any thoughts?

i have an access 97 database where i have people enter text and it gets printed out onto a report with 2 columns.
sometimes people enter a long column of text, maybe 40 lines, and when it gets printed on a report if there is already some text from a previous person printed on the elft column the 40 or so lines from the next person is too long to fit on the page and gets sent to the second column on the report which in turn leaves the last half of the column on the left hand side blank.
is there anyway to break a long column of text into 2 so half of it takes up the complete column on the left and the rest is put int he column on the right half of the page?? see attachment for example.

I am working on a report to print a list of all the products in my DB with the unit prices, essentially a price list. The report is split into two columns via the pagesetup and is grouped by the field ProductType.

I would like to draw a single distinct vertical line between the two columns, I have tried using the Line method in the OnPrint event of the detail section. However this method results in 2 lines as there are 2 columns in that section.

I am currently trying to use the Line method in the Page event of the report instead. However since the line method uses the X & Y coordinates from the first page only which has a larger pageheader unlike the rest of the pages, the line draws correctly only for the first page but is too short for the rest of the pages.

Private Sub Report_Page()
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single
Dim col As Long

Me.DrawStyle = 0
Me.DrawWidth = 25

X1 = 5095
Y1 = (Me.PageHeaderSection.Height + Me.ReportHeader.Height)
X2 = X1

col = RGB(35, 115, 93)
Y2 = Me.ScaleHeight - (Me.PageFooterSection.Height + 100)

Me.Line (X1, Y1)-(X2, Y2), col
End Sub

Would appreciate any help or advice on this issue, Thanks

I have a 2 column report that lists clients by Salesperson. I want the salesperson's name to only show on the left-hand column, not over both columns. Any suggestions? Thanks

Need help implementing way to obtain Median grouped by 2 columns and filtered by date in a Crosstab query.

We use Access as front end reporting tool with linked tables to SQL Server 2008 backend db. Management wants a time analysis report of each performer by median (in seconds) per PO lines of invoices with 1 to 10 lines only. We will later be doing a volume analysis to account for invoices with lines greater than 10. I kinda have the DMedian VBA function I got from MSDN site working, but I can’t figure out how to:

1. group by PERFORMER and then by NUM_LINES in the set strSQL = … line(s) of code in the VBA module(in seconds)
2. call DMedian function from within the Crosstab query.

I have attached (zipped per rules for new register users with less than 10 posts) a temporary db I threw together for sole purpose of trying to explain and use as test to get this Median issue worked out. The table, tblmedian_test_data, was dump of some test data from actual db. The crosstab query, qry_median_avg_test_1, is where I need to get this median thing worked out.
The db has a few VBA functions I started to play with trying to figure this out. The one I got from MSDN was commented better than any of the others I’d seen but at this point I don’t care which one we use. I just need to get this working. Lastly I am including the sql for the crosstab query and the VBA code for the DMedian function. Again there are other functions in db but this is one I’ve been trying to get to work.

I welcome any and all help!

	TRANSFORM Nz(Avg(DMedian("SECONDS","tbl_median_test_data")),0) AS CrossTabAvgMedian
SELECT tbl_median_test_data.NUM_LINES
FROM tbl_median_test_data
WHERE (((tbl_median_test_data.APPROVE_DATE)>=#1/1/2013# And (tbl_median_test_data.APPROVE_DATE) 0 Then
        'strSQL = strSQL & " WHERE " & strCriteria
        strSQL = strSQL & " GROUP BY " & strCriteria
    End If
    strSQL = strSQL & " ORDER BY " & strField
    Set rstDomain = db.OpenRecordset(strSQL, dbOpenSnapshot)
    ' Check the data type of the median field
    intFieldType = rstDomain.Fields(strField).Type
    Select Case intFieldType
    Case dbByte, dbInteger, dbLong, dbCurrency, dbSingle, dbDouble, dbDate
        ' Numeric field
        If Not rstDomain.EOF Then
            intRecords = rstDomain.RecordCount
            ' Start from the first record
            If (intRecords Mod 2) = 0 Then
                ' Even number of records
                ' No middle record, so move to the
                ' record right before the middle
                rstDomain.Move ((intRecords  2) - 1)
                varMedian = rstDomain.Fields(strField)
                ' Now move to the next record, the
                ' one right after the middle
                ' And average the two values
                varMedian = (varMedian + rstDomain.Fields(strField)) / 2
                ' Make sure you return a date, even when
                ' averaging two dates
                If intFieldType = dbDate And Not IsNull(varMedian) Then
                    varMedian = CDate(varMedian)
                End If
                ' Odd number or records
                ' Move to the middle record and return its value
                rstDomain.Move ((intRecords  2))
                varMedian = rstDomain.Fields(strField)
            End If
            ' No records; return Null
            varMedian = Null
        End If
    Case Else
        ' Non-numeric field; so raise an app error
        Err.Raise errAppTypeError
    End Select
    DMedian = varMedian
    On Error Resume Next
    Set rstDomain = Nothing
    Exit Function
    ' Return an error value
    DMedian = CVErr(Err.Number)
    Resume ExitHere
End Function

I've seen topics about Dcounting on reports but none of them seemed to apply.

What I have is a report with a following (relevant) columns

AGENT (number datatype, field name AGENT)
6 Months
12 Months

It's a list of different agents that I want to count the number of occurrences of said agent in the table, tblData, adding that as a column to my report per line.

For example, let's say Agent #1 occurs in tblData now, 2 months ago, 7 months ago, and 14 months ago. The report would list (under separate columns) 1 for the "6 Months" column and 2 for the "12 Months" column. This will be per line for each agent listed on the report.

My DCount syntax (Control Source for the entry under the "6 Month" column) is

Code: =DCount("*", "tblData", "AGENT = " & [txtAGENT] & " AND DATEENTRY >= #" & [txt6mths] & "#") but I seem to be having trouble with it.

txt6mths is just a hidden textbox I have on the report. txtAGENT is the name I assigned to the data for the AGENT column on the report.

Anyone have any ideas? Any help is much appreciated.


Is there a way to remove the spaces (blank rows) on a report that are created when you set HIDE DUPLICATES to YES? I have a two column report (WorkCode and HoursWorked. There are many duplicate entries under Workcode - I want the report to just show the unique codes and the total HoursWorked for each unique code. For example, my query may return a dynaset that shows A, A, B, B, B for WorkCode and corresponding values in HoursWorked of 1, 2, 1, 1, 2. I'd like the report to show that WorkCode A is 3 and WorkCode B is 4. Is there a way to do this without getting too deep into VB, etc.? I'm obviously an Access beginner!

Anyone have any code for printing a variable number of columns on a report, ie., at least 2 cols up to 31 columns?

I have a report with 2 columns, I've been trying to get the page numbering to show on both columns ie: page one on the left column and page 2 on the right column. I can't find any info on doing this. Can anyone help.


I have few reports with 2-3 columns. A few of the fields are numeric, and I had the wizard calculate, sum, avg, etc.

Hoowever, when printed the GRAND TOTALS are somehow forced to a brand new page. They won't print out at the end of the info form the last column. Example: One report has only 1/2 a column on the very last page. Instead of printing the Grand Total info there, it is printed out at the top of the next page.

I've checked the controls, and everything is set to NONE for Force New Page, etc.

I think it must be a setting somewhere, but I don't knoe where, and it really ruins the look of a report.

The "quick and dirty" solution is to move the info to the report header, which is okay. But, I'd like to solve this problem.


Gayle Ann

Not finding an answer? Try a Google search.