Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

vba进行打印设置

freeswan  发表于:2011-09-22 20:59:23  
复制

我有一个报表,要把打印纸设置为Tabloid,横向,4个边距为0

请问用vba怎么设置,不用窗体,也不预览

 

Top
dbaseIIIer 发表于:2011-09-22 22:00:14

在 Report_Open( Cancel as integer) 里

 

With Me.Printer

        .TopMargin = 0
        .BottomMargin = 0
        .LeftMargin = 0
        .RightMargin = 0
        .ColumnSpacing = 360
        .RowSpacing = 360
   
        .ColorMode = acPRCMColor
        .DataOnly = False
        .DefaultSize = False
        .ItemSizeHeight = 2880
        .ItemSizeWidth = 2880
        .ItemLayout = acPRVerticalColumnLayout
        .ItemsAcross = 6
   
        .Copies = 1
        .Orientation = acPRORLandscape
        .Duplex = acPRDPVertical
        .PaperBin = acPRBNAuto
       .PaperSize = acPRPSTabloid
        .PrintQuality = acPRPQMedium
End With

 



freeswan 发表于:2011-09-22 22:33:56

在 Report_Open( Cancel as integer) 里

 

请问,这是在哪里?

我用的是access2010



freeswan 发表于:2011-09-23 12:49:33

Private Sub Report_Open(Cancel As Integer)

With Me.Printer
    .TopMargin = 0
    .BottomMargin = 0
    .LeftMargin = 0
    .RightMargin = 0
    .PaperSize = acPRPSTabloid
End With

End Sub

是这样吗

 

Vertical是纵向吧



胡轶毓 发表于:2011-09-23 13:16:55

如果是要设成14X24.5的自定义纸张呢?



dbaseIIIer 发表于:2011-09-23 14:06:22

自己调吧! 建个模块, 存下以下模块。

 

在报表的设计模式下 立即窗口内执行  CheckCustomPage "报表名称"

 

Private Type str_DEVMODE
    RGB As String * 94
End Type

Private Type type_DEVMODE
    strDeviceName As String * 32
    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 * 32
    lngPad As Long
    lngBits As Long
    lngPW As Long
    lngPH As Long
    lngDFI As Long
    lngDFr As Long
End Type

Public Sub CheckCustomPage(ByVal rptName As String)

    Dim DevString As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strDevModeExtra As String
    Dim rpt As Report
    Dim intResponse As Integer
    
    ' Opens report in Design view.
    DoCmd.OpenReport rptName, acDesign
    Set rpt = Reports(rptName)
    
    If Not IsNull(rpt.PrtDevMode) Then
        strDevModeExtra = rpt.PrtDevMode
        
        ' Gets current DEVMODE structure.
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        If DM.intPaperSize = 256 Then
        
            ' Display user-defined size.
            intResponse = MsgBox("The current custom page size is " & _
                          DM.intPaperWidth / 254 & " inches wide by " & _
                          DM.intPaperLength / 254 & " inches long. Do you want " & _
                          "to change the settings?", vbYesNo + vbQuestion)
        Else
            ' Currently not user-defined.
            intResponse = MsgBox("The report does not have a custom page size. " & _
                          "Do you want to define one?", vbYesNo + vbQuestion)
        End If
        
        If intResponse = vbYes Then
            ' User wants to change settings. Initialize fields.
            DM.lngFields = DM.lngFields Or DM.intPaperSize Or _
                           DM.intPaperLength Or DM.intPaperWidth
                
            ' Set custom page.
            DM.intPaperSize = 256
            
            ' Prompt for length and width.
            DM.intPaperLength = InputBox("Please enter page length in inches.") * 254
            DM.intPaperWidth = InputBox("Please enter page width in inches.") * 254
            
            ' Update property.
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            rpt.PrtDevMode = strDevModeExtra
        End If
    End If
    
    Set rpt = Nothing
    
End Sub
		


总记录:5篇  页次:1/1 9 1 :