设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 711|回复: 0
打印 上一主题 下一主题

[报表] 请帮忙分析Access2000下报表自定义纸型的代码

[复制链接]
跳转到指定楼层
1#
发表于 2002-10-11 22:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

--------------------------------------------------------------------------------

自定义部分
Option Compare Database
Type str_DEVMODE
    RGB As String * 94
End Type

Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
    intPaperSize As Integer
    intPaperLength As Integer
    intPaperWidth As Integer
    intScale As Integer
    intCopies As Integer
    intDefaultSource As Integer
    intPrintQuality As Integer
    intColor As Integer
    intDuplex As Integer
    intResolution As Integer
    intTTOption As Integer
    intCollate As Integer
    strFormName As String * 16
    lngPad As Long
    lngBits As Long
    lngPW As Long
    lngPH As Long
    lngDFI As Long
    lngDFr As Long
End Type
下列代码是要自定义Access2000数据库中报表打印纸纸型的,在运行中有时会出现
回到打印机默认纸型(打印nec2000)而且有时出现Access停滞的现象(需要修复方可使用)。由于我是初学者,试过不少办法不得其法。请您指出缺点或提供一些VBA的资料。
多谢了
Private Sub 命令6_Click()
  On Error GoTo Err_命令6_Click
   Dim StDocName As String
   StDocName = "报表"
   Dim DevString As str_DEVMODE
   Dim DM As type_DEVMODE
   Dim strDevModeExtra As String
   Dim rpt As Report
   Dim intResponse As Integer
   DoCmd.OpenReport StDocName, acDesign
   Set rpt = Reports(StDocName)
   If Not IsNull(rpt.PrtDevMode) Then
       strDevModeExtra = rpt.PrtDevMode
       DevString.RGB = strDevModeExtra
       LSet DM = DevString
       If DM.intPaperSize <> 256 Then
       DM.lngFields = DM.lngFields Or _
            DM.intPaperSize Or DM.intPaperLength _
               Or DM.intPaperWidth Or DM.intOrientation
           DM.intPaperSize = 256   ' Set custom page.
           DM.intOrientation = 1
           DM.intPaperLength = 5.5 * 254
           DM.intPaperWidth = 8.5 * 254
           LSet DevString = DM         
           Mid(strDevModeExtra, 1, 94) = DevString.RGB
           rpt.PrtDevMode = strDevModeExtra
       End If
   End If
  DoCmd.Close acReport, StDocName, acSaveYes
   DoCmd.OpenReport StDocName, acPreview, , "[时间]=FORMs![主窗体]![时间]"
   Exit_命令6_Click:
   Exit Sub

Err_命令6_Click:
   MsgBox Err.Description
   Resume Exit_命令6_Click

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 16:35 , Processed in 0.090118 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表