printing double sided reports

G

Guest

I want to print my access report as double sided on my non-duplex printer.

In Word I just print the even pages in descending order, put the paper in
again and print the odd pages in ascending order.
Access doesn't give me these options on the print window, so how do I make
it work?
 
G

Guest

The article you refere to is just a clumsy bodge which doesn't really fix my
problem. it prints blank pages between every page that is wanted, and does
not allow the pages to revresed.

i am talking mutli megabyte databses and reports of around 1000 pages. It
simply is not practical to have a person sit and remove 500 hundred blank
pages, then reoreder the remaining 500 in reverse order so that the other
pages can be printed on the reverse. The whole idea is to get the computer to
do the work- not a person.

Surely there must be a way to link the print routines used by word into
access instead of the ones currently used by access.
What I need to do is:
a) print the even pages in reverse order (so i can just take them out and
replace them in the in tray)
b) print the odd pages in normal order

This is a simple two step process with word - I need to replicate that in
access.

Any better ideas?
 
J

John Spencer

How about "printing" the report to a .pdf file and then printing the .pdf
file?

Adobe Reader will allow you to print odd or even pages and reverse collate
them.

There are several free pdf solutions as well as an addin from Stephen Lebans
that should work for you. Check out the following
http://www.lebans.com/reporttopdf.htm

I've not used Stephen Lebans' solution, but I've used several other of his
solutions and have be satisified with them.
 
G

Guest

Thanks- this is a much quicker way to actually print the report but it
doesn't mirror the margins, my lhs (odd) pages have the large margin for
binding on the wrong side.
Do you have any idea how I can fix it to word like a proper double sided
print and swap the margins on the odd pages?
 
J

John Spencer

Here is some code that allows you to have different margins on even and odd
pages.
Move the left position of each control as needed for each even page, then
back for each odd page.

It is from an old posting by Fred.

In the Code Window Declarations section, write:

Option Compare Database
Option Explicit
Dim MoveMargin As Integer
====
Code the Report Header Format event:

Private Sub ReportHeader_Format(Cancel As Integer, _
FormatCount As Integer)
MoveMargin = MoveMargin * -1
ChangeMargins
End Sub
=======

Code the Page Header Format event:

Private Sub PageHeader_Format(Cancel As Integer, _
FormatCount As Integer)
If Me.Page = 1 Then
MoveMargin = 0
ElseIf Me.[Page] Mod 2 = 0 Then
MoveMargin = 1440
Else
MoveMargin = -1440
End If
ChangeMargins
End Sub
=========
Add a new Sub Procedure to the code window:

Public Sub ChangeMargins()
Dim C As Control
For Each C In Me.Controls
C.Left = C.Left + MoveMargin
Next C
End Sub
====

Change the value of MoveMargin as needed.
1440 = 1 inch.
Make sure there is enough room to the right of the right-most controls to
allow for the movement towards the right.
 
G

Guest

Unfortunately I keep getting Run time error '2100' The control or subform
control is too large for this location and the results are erratic. I think
it is because of the 'can grow' fields as the error does not occur on every
page.

John Spencer said:
Here is some code that allows you to have different margins on even and odd
pages.
Move the left position of each control as needed for each even page, then
back for each odd page.

It is from an old posting by Fred.

In the Code Window Declarations section, write:

Option Compare Database
Option Explicit
Dim MoveMargin As Integer
====
Code the Report Header Format event:

Private Sub ReportHeader_Format(Cancel As Integer, _
FormatCount As Integer)
MoveMargin = MoveMargin * -1
ChangeMargins
End Sub
=======

Code the Page Header Format event:

Private Sub PageHeader_Format(Cancel As Integer, _
FormatCount As Integer)
If Me.Page = 1 Then
MoveMargin = 0
ElseIf Me.[Page] Mod 2 = 0 Then
MoveMargin = 1440
Else
MoveMargin = -1440
End If
ChangeMargins
End Sub
=========
Add a new Sub Procedure to the code window:

Public Sub ChangeMargins()
Dim C As Control
For Each C In Me.Controls
C.Left = C.Left + MoveMargin
Next C
End Sub
====

Change the value of MoveMargin as needed.
1440 = 1 inch.
Make sure there is enough room to the right of the right-most controls to
allow for the movement towards the right.
--
Fred
chelidon said:
Thanks- this is a much quicker way to actually print the report but it
doesn't mirror the margins, my lhs (odd) pages have the large margin for
binding on the wrong side.
Do you have any idea how I can fix it to word like a proper double sided
print and swap the margins on the odd pages?
 
J

John Spencer

If you believe it is the can grow property, I assume you have tested this by
temporarily turning setting all the controls' can grow properties to false
and attempting to run the report that way.

Too large can mean that the width of the control is too great as well as the
height is too great. In this case, I think it means that you are trying to
move one or more controls outside the width of the report. You can try
increasing the report's width.

chelidon said:
Unfortunately I keep getting Run time error '2100' The control or subform
control is too large for this location and the results are erratic. I
think
it is because of the 'can grow' fields as the error does not occur on
every
page.

John Spencer said:
Here is some code that allows you to have different margins on even and
odd
pages.
Move the left position of each control as needed for each even page, then
back for each odd page.

It is from an old posting by Fred.

In the Code Window Declarations section, write:

Option Compare Database
Option Explicit
Dim MoveMargin As Integer
====
Code the Report Header Format event:

Private Sub ReportHeader_Format(Cancel As Integer, _
FormatCount As Integer)
MoveMargin = MoveMargin * -1
ChangeMargins
End Sub
=======

Code the Page Header Format event:

Private Sub PageHeader_Format(Cancel As Integer, _
FormatCount As Integer)
If Me.Page = 1 Then
MoveMargin = 0
ElseIf Me.[Page] Mod 2 = 0 Then
MoveMargin = 1440
Else
MoveMargin = -1440
End If
ChangeMargins
End Sub
=========
Add a new Sub Procedure to the code window:

Public Sub ChangeMargins()
Dim C As Control
For Each C In Me.Controls
C.Left = C.Left + MoveMargin
Next C
End Sub
====

Change the value of MoveMargin as needed.
1440 = 1 inch.
Make sure there is enough room to the right of the right-most controls to
allow for the movement towards the right.
--
Fred
chelidon said:
Thanks- this is a much quicker way to actually print the report but it
doesn't mirror the margins, my lhs (odd) pages have the large margin
for
binding on the wrong side.
Do you have any idea how I can fix it to word like a proper double
sided
print and swap the margins on the odd pages?

:

How about "printing" the report to a .pdf file and then printing the
.pdf
file?

Adobe Reader will allow you to print odd or even pages and reverse
collate
them.

There are several free pdf solutions as well as an addin from Stephen
Lebans
that should work for you. Check out the following
http://www.lebans.com/reporttopdf.htm

I've not used Stephen Lebans' solution, but I've used several other of
his
solutions and have be satisified with them.

The article you refere to is just a clumsy bodge which doesn't
really
fix
my
problem. it prints blank pages between every page that is wanted,
and
does
not allow the pages to revresed.

i am talking mutli megabyte databses and reports of around 1000
pages.
It
simply is not practical to have a person sit and remove 500 hundred
blank
pages, then reoreder the remaining 500 in reverse order so that the
other
pages can be printed on the reverse. The whole idea is to get the
computer
to
do the work- not a person.

Surely there must be a way to link the print routines used by word
into
access instead of the ones currently used by access.
What I need to do is:
a) print the even pages in reverse order (so i can just take them
out
and
replace them in the in tray)
b) print the odd pages in normal order

This is a simple two step process with word - I need to replicate
that
in
access.

Any better ideas?



:

See this knowledge base article on printing odd or even pages of a
report:

http://support.microsoft.com/kb/209508/en-us
--
SA
ACG Soft
http://ourworld.compuserve.com/homepages/attac-cg

I want to print my access report as double sided on my non-duplex
printer.

In Word I just print the even pages in descending order, put the
paper
in
again and print the odd pages in ascending order.
Access doesn't give me these options on the print window, so how
do
I
make
it work?
 
G

Guest

Thanks for the help - I now have this working for all except one report. -
major success!
The problem report has multiple columns printed down and then across - the
shifting of the margin goes haywire, sometimes twice to the right or twice as
far to the left. my pages are all staggered and I haven't yet got to the
bottom of the problem.

John Spencer said:
If you believe it is the can grow property, I assume you have tested this by
temporarily turning setting all the controls' can grow properties to false
and attempting to run the report that way.

Too large can mean that the width of the control is too great as well as the
height is too great. In this case, I think it means that you are trying to
move one or more controls outside the width of the report. You can try
increasing the report's width.

chelidon said:
Unfortunately I keep getting Run time error '2100' The control or subform
control is too large for this location and the results are erratic. I
think
it is because of the 'can grow' fields as the error does not occur on
every
page.

John Spencer said:
Here is some code that allows you to have different margins on even and
odd
pages.
Move the left position of each control as needed for each even page, then
back for each odd page.

It is from an old posting by Fred.

In the Code Window Declarations section, write:

Option Compare Database
Option Explicit
Dim MoveMargin As Integer
====
Code the Report Header Format event:

Private Sub ReportHeader_Format(Cancel As Integer, _
FormatCount As Integer)
MoveMargin = MoveMargin * -1
ChangeMargins
End Sub
=======

Code the Page Header Format event:

Private Sub PageHeader_Format(Cancel As Integer, _
FormatCount As Integer)
If Me.Page = 1 Then
MoveMargin = 0
ElseIf Me.[Page] Mod 2 = 0 Then
MoveMargin = 1440
Else
MoveMargin = -1440
End If
ChangeMargins
End Sub
=========
Add a new Sub Procedure to the code window:

Public Sub ChangeMargins()
Dim C As Control
For Each C In Me.Controls
C.Left = C.Left + MoveMargin
Next C
End Sub
====

Change the value of MoveMargin as needed.
1440 = 1 inch.
Make sure there is enough room to the right of the right-most controls to
allow for the movement towards the right.
--
Fred
Thanks- this is a much quicker way to actually print the report but it
doesn't mirror the margins, my lhs (odd) pages have the large margin
for
binding on the wrong side.
Do you have any idea how I can fix it to word like a proper double
sided
print and swap the margins on the odd pages?

:

How about "printing" the report to a .pdf file and then printing the
.pdf
file?

Adobe Reader will allow you to print odd or even pages and reverse
collate
them.

There are several free pdf solutions as well as an addin from Stephen
Lebans
that should work for you. Check out the following
http://www.lebans.com/reporttopdf.htm

I've not used Stephen Lebans' solution, but I've used several other of
his
solutions and have be satisified with them.

The article you refere to is just a clumsy bodge which doesn't
really
fix
my
problem. it prints blank pages between every page that is wanted,
and
does
not allow the pages to revresed.

i am talking mutli megabyte databses and reports of around 1000
pages.
It
simply is not practical to have a person sit and remove 500 hundred
blank
pages, then reoreder the remaining 500 in reverse order so that the
other
pages can be printed on the reverse. The whole idea is to get the
computer
to
do the work- not a person.

Surely there must be a way to link the print routines used by word
into
access instead of the ones currently used by access.
What I need to do is:
a) print the even pages in reverse order (so i can just take them
out
and
replace them in the in tray)
b) print the odd pages in normal order

This is a simple two step process with word - I need to replicate
that
in
access.

Any better ideas?



:

See this knowledge base article on printing odd or even pages of a
report:

http://support.microsoft.com/kb/209508/en-us
--
SA
ACG Soft
http://ourworld.compuserve.com/homepages/attac-cg

I want to print my access report as double sided on my non-duplex
printer.

In Word I just print the even pages in descending order, put the
paper
in
again and print the odd pages in ascending order.
Access doesn't give me these options on the print window, so how
do
I
make
it work?
 
J

John Spencer

Try only running the code to "move margins" if the formatCount is 1


chelidon said:
Thanks for the help - I now have this working for all except one report. -
major success!
The problem report has multiple columns printed down and then across - the
shifting of the margin goes haywire, sometimes twice to the right or twice
as
far to the left. my pages are all staggered and I haven't yet got to the
bottom of the problem.

John Spencer said:
If you believe it is the can grow property, I assume you have tested this
by
temporarily turning setting all the controls' can grow properties to
false
and attempting to run the report that way.

Too large can mean that the width of the control is too great as well as
the
height is too great. In this case, I think it means that you are trying
to
move one or more controls outside the width of the report. You can try
increasing the report's width.

chelidon said:
Unfortunately I keep getting Run time error '2100' The control or
subform
control is too large for this location and the results are erratic. I
think
it is because of the 'can grow' fields as the error does not occur on
every
page.

:

Here is some code that allows you to have different margins on even
and
odd
pages.
Move the left position of each control as needed for each even page,
then
back for each odd page.

It is from an old posting by Fred.

In the Code Window Declarations section, write:

Option Compare Database
Option Explicit
Dim MoveMargin As Integer
====
Code the Report Header Format event:

Private Sub ReportHeader_Format(Cancel As Integer, _
FormatCount As Integer)
MoveMargin = MoveMargin * -1
ChangeMargins
End Sub
=======

Code the Page Header Format event:

Private Sub PageHeader_Format(Cancel As Integer, _
FormatCount As Integer)
If Me.Page = 1 Then
MoveMargin = 0
ElseIf Me.[Page] Mod 2 = 0 Then
MoveMargin = 1440
Else
MoveMargin = -1440
End If
ChangeMargins
End Sub
=========
Add a new Sub Procedure to the code window:

Public Sub ChangeMargins()
Dim C As Control
For Each C In Me.Controls
C.Left = C.Left + MoveMargin
Next C
End Sub
====

Change the value of MoveMargin as needed.
1440 = 1 inch.
Make sure there is enough room to the right of the right-most controls
to
allow for the movement towards the right.
--
Fred
Thanks- this is a much quicker way to actually print the report but
it
doesn't mirror the margins, my lhs (odd) pages have the large margin
for
binding on the wrong side.
Do you have any idea how I can fix it to word like a proper double
sided
print and swap the margins on the odd pages?

:

How about "printing" the report to a .pdf file and then printing
the
.pdf
file?

Adobe Reader will allow you to print odd or even pages and reverse
collate
them.

There are several free pdf solutions as well as an addin from
Stephen
Lebans
that should work for you. Check out the following
http://www.lebans.com/reporttopdf.htm

I've not used Stephen Lebans' solution, but I've used several other
of
his
solutions and have be satisified with them.

The article you refere to is just a clumsy bodge which doesn't
really
fix
my
problem. it prints blank pages between every page that is wanted,
and
does
not allow the pages to revresed.

i am talking mutli megabyte databses and reports of around 1000
pages.
It
simply is not practical to have a person sit and remove 500
hundred
blank
pages, then reoreder the remaining 500 in reverse order so that
the
other
pages can be printed on the reverse. The whole idea is to get the
computer
to
do the work- not a person.

Surely there must be a way to link the print routines used by
word
into
access instead of the ones currently used by access.
What I need to do is:
a) print the even pages in reverse order (so i can just take them
out
and
replace them in the in tray)
b) print the odd pages in normal order

This is a simple two step process with word - I need to replicate
that
in
access.

Any better ideas?



:

See this knowledge base article on printing odd or even pages of
a
report:

http://support.microsoft.com/kb/209508/en-us
--
SA
ACG Soft
http://ourworld.compuserve.com/homepages/attac-cg

I want to print my access report as double sided on my
non-duplex
printer.

In Word I just print the even pages in descending order, put
the
paper
in
again and print the odd pages in ascending order.
Access doesn't give me these options on the print window, so
how
do
I
make
it work?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top