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.
Code looks good. Where does it not work?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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).P rtDevMode) Then
dm.rgb = Reports(myreport).PrtDevMo de
LSet devmode = dm
devmode.dmPaperSize = mypapersize
devmode.dmPaperlength = mypapersizeLength
devmode.dmPaperWidth = mypapersizeWidth
LSet dm = devmode
Reports(myreport).PrtDevMo de = 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
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
If Not IsNull(Reports(myreport).P
dm.rgb = Reports(myreport).PrtDevMo
LSet devmode = dm
devmode.dmPaperSize = mypapersize
devmode.dmPaperlength = mypapersizeLength
devmode.dmPaperWidth = mypapersizeWidth
LSet dm = devmode
Reports(myreport).PrtDevMo
DoCmd SetWarnings False
DoCmd DoMenuItem 7, A_FILE, 2
DoCmd SetWarnings True
End If
Reports(myreport).Painting
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).PrtDevM ode = 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-------
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).PrtDevM
DoCmd SetWarnings False
DoCmd SetWarnings True
End If
Reports(MyReport).Painting
DoCmd DoMenuItem 7, 0, 2, , A_MENU_VER20 ' Report|File|Save.
DoCmd Close A_REPORT, MyReport
End Function
-----extract from MS-------
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.
Im glad i asked the question. :)
Have you done the changes fro MS Access 2.O as described above.
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.
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.
Have you tried the code with other printer drivers?
And you are multiplying inches say by 254.
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.
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.
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.
ASKER
Dim dm As zwtDevModeStr ' Structures defined in zwAllGlobals module in WZFRMRPT.MDA.
Dim devmode As zwtDeviceMode
DoCmd OpenReport myreport, A_DESIGN
Reports(myreport).Painting
If Not IsNull(Reports(myreport).P
dm.rgb = Reports(myreport).PrtDevMo
LSet devmode = dm
devmode.dmPaperSize = mypapersize
devmode.dmPaperlength = 500
devmode.dmPaperWidth = 10000
LSet dm = devmode
Reports(myreport).PrtDevMo
DoCmd SetWarnings False
DoCmd DoMenuItem 7, A_FILE, 2
DoCmd SetWarnings True
End If
Reports(myreport).Painting
DoCmd Close A_REPORT, myreport