On Tue, 20 Jan 2004 17:04:47 -0500, "DBQueen" <ir******@bellsouth.net>
wrote:
I have a database which will be printing out labels for SMALL test tubes
(1/4" high). We have yet to find a reasonably-priced printer (labelwriter)
which can effectively print this on ROLLS of labels....due to slippage, soon
you have the printout missing the label. So we are thinking that we have to
use sheets of labels.
HOWEVER, one job may need 15 labels, another may need 8, etc.
Does anyone have a solution for how to set this up in Access to minimize
wasting labels on the sheets. If the last job leaves off 1/2 down column
one, how can we tell the printer to start the next job down 1/2 column? Or
is it just best to export the data and manage it through MSWord somehow?
Any suggestions would be appreciated.
Andi
Andi,
It's not clear from your post whether the label is to be printed in
batches, some 15 of, some 8 of, etc., or whether the label is to be
printed 15 times only.
I'll assume the second scenario. You have one label (or many) to be
printed and the user will input the number of times to repeat them on
the label sheet.
***
This will permit you to enter the number of times to repeat the
labels, as well as skip missing label positions on an already used
sheet.
It is designed to have all the labels in the Report's Recordsource
printed, starting at Page 1, and continuing through each page of
labels until the end.
First make sure your label report properly prints 1 label per record.
Then add a Report Header to the label report.
Add 3 unbound text boxes to the header.
1) Set the Control Source to:
= [Skip how many]
Name this control SkipCounter
2) Leave the second control unbound.
Name this control SkipControl
3) Set the third control's Control Source to:
=[Repeat how many?]
Name it RepeatCounter
Next code the Report Header OnFormat event:
Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As
Integer)
[SkipControl] = "Skip"
Cancel = True
End Sub
=======
Now code the Detail OnPrint Event:
(Note that intMyPrint is Static!!)
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Static intMyPrint As Integer
If PrintCount <= [SkipCounter] And [SkipControl] = "Skip" Then
Me.NextRecord = False
Me.PrintSection = False
intMyPrint = 0
Else
[SkipControl] = "No"
Me.PrintSection = True
Me.NextRecord = True
intMyPrint = intMyPrint + 1
If IsNull([RepeatCounter]) Then
ElseIf intMyPrint Mod [RepeatCounter] = 0 Then
Me.NextRecord = True
intMyPrint = 0
Else
Me.NextRecord = False
End If
End If
End Sub
=========
When you run the report, it will ask how many labels to skip, then how
many times to repeat each label.
Hope this has helped.
--
Fred
Please reply only to this newsgroup.
I do not reply to personal e-mail.