Link to home
Start Free TrialLog in
Avatar of BBrian
BBrian

asked on

Paper Size in Access 2.0

How do you change the paper size in Access 2.0?  In page set up, there is a user defined page size, but I suppose it needs to be set in code.
Avatar of BBrian
BBrian

ASKER

Here is the code I tried...

Dim dm As zwtDevModeStr ' Structures defined in zwAllGlobals module in WZFRMRPT.MDA.
    Dim devmode As zwtDeviceMode
    DoCmd OpenReport myreport, A_DESIGN
    Reports(myreport).Painting = False
    If Not IsNull(Reports(myreport).PrtDevMode) Then
        dm.rgb = Reports(myreport).PrtDevMode
        LSet devmode = dm
        devmode.dmPaperSize = mypapersize
         devmode.dmPaperlength = 500
          devmode.dmPaperWidth = 10000
        LSet dm = devmode
        Reports(myreport).PrtDevMode = dm.rgb
        DoCmd SetWarnings False
        DoCmd DoMenuItem 7, A_FILE, 2
                DoCmd SetWarnings True
    End If

    Reports(myreport).Painting = True
    DoCmd Close A_REPORT, myreport

Code looks good. Where does it not work?
ASKER CERTIFIED SOLUTION
Avatar of ozphil
ozphil

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of BBrian

ASKER

My understanding is the papersize codes 1 -41 are pre-defined sizes and 256 is the user defined size.  When I run the code it does change the paper size, but only to the smallest settings.
When I preview or print the size remains the smallest no matter what I declare in code. Here, again, is the code:

Sub papersize (myreport As String, mypapersize As Integer, mypapersizeLength As Integer, mypapersizeWidth As Integer)
    Dim dm As zwtDevModeStr ' Structures defined in zwAllGlobals module in WZFRMRPT.MDA.
    Dim devmode As zwtDeviceMode
    DoCmd OpenReport myreport, A_DESIGN
    Reports(myreport).Painting = False
    If Not IsNull(Reports(myreport).PrtDevMode) Then
        dm.rgb = Reports(myreport).PrtDevMode
        LSet devmode = dm
        devmode.dmPaperSize = mypapersize
         devmode.dmPaperlength = mypapersizeLength
          devmode.dmPaperWidth = mypapersizeWidth
        LSet dm = devmode
        Reports(myreport).PrtDevMode = dm.rgb
        DoCmd SetWarnings False
        DoCmd DoMenuItem 7, A_FILE, 2
                DoCmd SetWarnings True
    End If

    Reports(myreport).Painting = True
    DoCmd Close A_REPORT, myreport

ok.back to the drawing board. Keyboard?
i assume you are running this in Windows 95. Is this correct.
There are some changes to the  zwtDevModeStr structure in win95.

In addition to this could you note  ther following:
----extract from MS-----
 In the sample code above, change the last seven lines of code just below the line that read "Reports(MyReport).PrtDevMode = dm.rgb" to read as follows:

             DoCmd SetWarnings False
             DoCmd SetWarnings True
        End If

        Reports(MyReport).Painting = True
        DoCmd DoMenuItem 7, 0, 2, , A_MENU_VER20  ' Report|File|Save.
        DoCmd Close A_REPORT, MyReport
   End Function
-----extract from MS-------


Avatar of BBrian

ASKER

Ozphil, I am using Windows 3.11
Windows 3.11.

Im glad i asked the question. :)

Have you done the changes fro MS Access 2.O as described above.
Avatar of BBrian

ASKER

yes I tried.  
the only difference was that the report closed without promting
me to save the changes.  However, I have been able to change the
paper size when I set papersize to 0.  But I still can't get the
size to change much.  I am trying to set the size to 2 x 4 inches.  Perhaps there is a limit.  But It doesn't even change to
4 x 6.  The user-defined size produces a size too small.
I dont have 3.11 to try it out.

Have you tried the code with other printer drivers?

And you are multiplying inches say by 254.


Avatar of BBrian

ASKER

Ozphil, I sent a copy of the problem to microsoft.  They could not solve it.  They gave me a work around.  Install the same printer with a different port and a different defined paper size.
They did not elaborate why it did not function as it should.  To my knowledge I can't withdraw the question.  So you can have all the points.
Hi bbrian. just got back from a break.

Thanks for the points although the only contribution was to confirm that the problem was unsolvable. I hope MS did not charge you. Their policy is not to charge for bugs, and this appears to be one.