请问怎样打印我用DATAGRID显示的数据库记录
因为现在非常着急,所以最好给出详细代码,改改就能用。万分感激!

解决方案 »

  1.   

    试一试^_^:
    Private Sub PrintDataGrid()
        Dim lFC As Long
        Dim I As Long, K As Long
        Dim lRC As Long
        Dim lStepX As Long
        Dim lPos() As Long
        
        lFC = Me.DataGrid1.Columns.Count
        lRC = Me.Adodc1.Recordset.RecordCount
        lStepX = 60
        ReDim lPos(lFC - 1) As Long
        
        Printer.Font.Bold = True
        For I = 0 To lFC - 1
            lPos(I) = Me.CurrentX
            Printer.Print Me.DataGrid1.Columns(I).Caption;
            Printer.CurrentX = Printer.CurrentX + lStepX
            
        Next I
        Printer.Font.Bold = False
        For I = 0 To lRC - 1
            Printer.Print vbCrLf
            Printer.DataGrid1.Row = I
            For K = 0 To lFC - 1
                Printer.CurrentX = lPos(K)
                Printer.DataGrid1.Col = K
                Printer.Print Me.DataGrid1.Text;
            Next K
        Next I
    End Sub
      

  2.   

    抱歉!代码粘贴有误!!!
    Private Sub PrintDataGrid(objDataGrid As DataGrid, objADO As Adodc)
        Dim lFC As Long
        Dim I As Long, K As Long
        Dim lRC As Long
        Dim lStepX As Long
        Dim lPos() As Long
        
        lFC = objDataGrid.Columns.Count
        lRC = objADO.Recordset.RecordCount
        lStepX = 60
        ReDim lPos(lFC - 1) As Long
        
        Printer.Font.Bold = True
        For I = 0 To lFC - 1
            lPos(I) = Me.CurrentX
            Printer.Print objDataGrid.Columns(I).Caption;
            Printer.CurrentX = Printer.CurrentX + lStepX
            
        Next I
        Printer.Font.Bold = False
        For I = 0 To lRC - 1
            Printer.Print vbCrLf
            objDataGrid.Row = I
            For K = 0 To lFC - 1
                Printer.CurrentX = lPos(K)
                objDataGrid.Col = K
                Printer.Print objDataGrid.Text;
            Next K
        Next I
    End Sub