Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Reports / Printing / March 2008

Tip: Looking for answers? Try searching our database.

Tractor Fed label roll gets 3.3 inch feed at end of page?  How do.

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Pampas58 - 14 Mar 2008 23:37 GMT
Once again I begin what seems like a simple project and reality hits me with
a two by four on the back of the head.

THE ISSUE:
Continuous form, custom product and serial number label for our products
that feeds a Page Break at the end of the page in letter size page.  I’ve
used the Label Wizard and I defined the label as continuous, yet after 6
labels that print perfectly, I get a feed of 3.375 inches.

I’ve looked everywhere in Access and I cannot find a way to override this
automatic feed.

THE SOFTWARE:
Access 2002 SP3

THE PRINTER:
Okidata Microline ML591, Dot Matrix 24 Pin, Rear Tractor Feed, Continuous Form

HOW WAS THE LABEL CREATED?
1) I used the NEW command, selected LABEL WIZ
2) Defined the label to the custom label our marketing department had printed
3) Set to SINGLE COLUMN, Continuous
4) Located the data fields where I needed them

If anyone has any ideas how I might be able to shut off the feed so it is
really continuous tractor fed with no page break I’d appreciate your help.

Pampas…

p.s., if anyone wants to see the actual database send me an e-mail and I’ll
send you the data.
Larry Linson - 17 Mar 2008 18:48 GMT
> Once again I begin what seems like a simple project and reality hits me
> with
[quoted text clipped - 27 lines]
>
> Pampas.

Some impact printers will not print at what they believe to be "on the
perforations", either never, or as an option, but I am not familiar with
this one to know if that is what you are experiencing.  This may well be a
printer setting that you'll have to determine and change -- check your
printer's user manual or ask the manufacturer if that is the case.  Ask
them, as a matter of fact, about the feed...

One thing I'd wager... you don't have an _Access_ problem, but a printer, or
printer driver software, problem.

Larry Linson
Microsoft Office Access MVP
Pampas58 - 18 Mar 2008 00:57 GMT
Larry,

Thanks for your reply.  I spent over an hour with the OKIDATA people on the
phone and worked through the various scenarios of the printer.  The feature
in the ML591 (in LQ standard Emulation set from the factory) for skipping
over perforation is set to NO, and it works.

I wrote a quick module to test it:

Open “LPT1” for Output as #1

For N = 1 to 500
    Print #1, “This Is a Test of the Perforation Skip”
Next

Close #1

It typed right over the perforation with no problem.

Also, when I change from Letter (only one of about 8 options that Access 2002
hooked up to the OKIDATA gives me) I get 6 labels then the skip over the line,
which is a total distance from bottom of last line printed to top of next
line printed of 1.25 inches.

I think, and I say this carefully, that the distance is the sum of two
parameters: 1) the normal distance between the last line and the first which
is 0.625 or thereabout, and 2) The minimum top margin Access will let me
enter into the report of 0.627 inches.

Do you have any suggestions of where I can look.  The test I ran seemed to
make sense and prove that the printer can and does ignore the perforations,
if I just simply send it a command to print.  The continuous form on a
tractor feed seems to be a problem for Access; there are no options for that
in the paper size selection.

Your help, and anyone else’s help on this is greatly appreciated.

Signed: Frustrated in KC, on St. Patrick’s day… Pampas58

>> Once again I begin what seems like a simple project and reality hits me
>> with
[quoted text clipped - 14 lines]
> Larry Linson
> Microsoft Office Access MVP
Larry Linson - 18 Mar 2008 07:20 GMT
Some get caught between a "rock and a hard place", others between Access,
Windows, and a printer, it seems. I wish I had a solution for you (other
than... well, Print #1 seems to work for what you want to do... a little
clumsier that a Label template report) but unfortunately I don't.

I gave away my last impact printer... a nice little IBM proprinter, after
having not used it since the days of DOS 6 and Win 3.1.

 Larry Linson
 Microsoft Office Access MVP

> Larry,
>
[quoted text clipped - 61 lines]
>> Larry Linson
>> Microsoft Office Access MVP
Pampas58 - 20 Mar 2008 00:08 GMT
Well, while I have gone to a NUMBER of technical forums trying to get the
answer to the Tractor Feed Label Problem, no one seemed to have the answer I
was looking for.  Many pointed to the OKIDATA ML591, others pointed to Access
2002 and in the end I still don’t have an answer.

However, since I did figure out a “brute force” method I thought I’d add it
here and on the other Forums as a way for you to deal with the issues and
perhaps you can come up with a more elegant solution and if so I’d truly
appreciate it if you’d send me the answers as well.

In essence what you’re going to see is that I create the labels in a loop,
and format the serial number (S/N) to our liking.  Then I enumerate the
labels on the table and from there I simply do a filter that prints one
report (first 6 S/N labels) and then closes and prints another report (the
next 6 S/N labels) allowing the user to reset the printer’s position.

Since it is starting at the top of the page, there is no need to waste any
labels.  Any and all suggestions are still not only welcomed, but also
desperately sought

[code]
Private Sub cmd_Gen_LabelSet_Click()
On Error GoTo Err_Gen_LabelSet_Click
   Dim sSerialBase As String
   Dim sModelNumber As String
   Dim sSerialNumber As String
   Dim sACvolt As String
   Dim sACamp As String
   Dim sPhase As String
   Dim sCnt As String
   Dim sHertz As String
   Dim sDCVolts As String
   Dim stDocName As String
   Dim stCriteria As String
   Dim iSeqStart As Integer
   Dim iSeqEnd As Integer
   Dim iLabelNumber As Integer
   Dim iTotalLabels As Integer
   Dim iNumberOfPages As Integer
   Dim iPage As Integer
   Dim iFirstLabel As Integer
   Dim iLastLabel As Integer
   
DoCmd.OpenQuery "qryDEL_Old_Gen_Set", acNormal, acEdit
   
'this section opens up the labelgen database to stuff the label
'information into it
   Dim db As DAO.Database
   Dim rst As DAO.Recordset
   
' this section captures the data from the form
   sSerialBase = [Base Serial Number]
   iSeqStart = [Sequence Start]
   iSeqEnd = [Sequence Finish]
   
   Set db = CurrentDb()
   Set rst = db.OpenRecordset("tblLabel_gen", dbOpenDynaset)
'this section starts to generate the serial numbers
   If IsNull([Hetz]) Then [Hetz] = " "
   
   
   With rst

       For cnt = iSeqStart To iSeqEnd ' sets up the serial number sequence
       .AddNew ' opens the table to add new records
' This section Formats the Serial Number so that it has leading zeros
           If cnt <= 9 Then sCnt = "00" & cnt
           If cnt >= 10 And cnt < 100 Then sCnt = "0" & cnt
           If cnt >= 100 Then sCnt = cnt
           
           sSerialNumber = sSerialBase & sCnt ' stores the formated S/N
           iLabelNumber = iLabelNumber + 1 ' Stores Label Count
           
' this section writes the data into the label database
           ![Label Number] = iLabelNumber
           ![Serial Number] = sSerialNumber
           ![Model Number] = [Model Number]
           ![AC Voltage] = [AC Voltage]
           ![AC Amps] = [AC Amps]
           ![Phase] = [Phase]
           ![Hetz] = [Hetz]
           ![DC Volts] = [DC Volts]
           ![Max DC Amps] = [Max DC Amps]
       .Update 'without the Update statement it's not going to get stored
       Next
   
   End With

' capture the number of labels created
   iTotalLabels = iLabelNumber
   
' see how many sets of reports (pages) must be printed
' each LETTER size page, will print 6 labels custom sized for our application
' the 5/6 addition at the end is to round up to the next full page
' 1 label of 6 (1/6) + (5/6) then the integer makes it a full page number

   iNumberOfPages = Int((iTotalLabels / 6) + (5 / 6))

   
'print the pages
   For iPage = 1 To iNumberOfPages
       iLastLabel = iPage * 6  ' Define the last label on the page
       iFirstLabel = iLastLabel - 6    ' subtract 6 to find the first label
       stCriteria = "[Label Number] >" & iFirstLabel & _
           "AND [Label Number] <=" & iLastLabel    ' set the Filter for each
pass
       
       
   MsgBox "ALERT!!!:  ALIGN FOR NEXT LABEL SET"    ' Alert the user to reset
the label indexing
       stDocName = "Label 1"
   
       'DoCmd.OpenReport stDocName, acPreview
       DoCmd.OpenReport stDocName, acViewNormal, , stCriteria
   Next

MsgBox "COMPLETE! - No More Labels To Print, Thank you and print again soon...
"
 
Exit_Gen_LabelSet_Click:
   Exit Sub

Err_Gen_LabelSet_Click:
   MsgBox Err.Description
   Resume Exit_Gen_LabelSet_Click

End Sub
[/code]

Thanks to those who tried to help me out.  And I'm still in need of a better
solution, because this requires too much human interface

Pampas58

>Some get caught between a "rock and a hard place", others between Access,
>Windows, and a printer, it seems. I wish I had a solution for you (other
[quoted text clipped - 12 lines]
>>> Larry Linson
>>> Microsoft Office Access MVP
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.