查询相对简单,直接用一个记录集,查完后set DataGrid1.datasource=记录集,或者用个adodc控件绑定(不细述) 既然考虑了导出到excel,何不用excel现成的打印功能.导出excel: Private Sub Command9_Click() Dim i As Long, j As Long Dim xlsApp As Excel.Application Dim xlsBook As Excel.Workbook Dim xlssheet As Excel.Worksheet Set xlsApp = New Excel.Application Set xlsApp = CreateObject("Excel.Application") xlsApp.Visible = True xlsApp.Workbooks.Add xlsApp.Sheets("Sheet1").Select DataGrid1.Row = 0 i = 1 Do While DataGrid1.Row >= 0 If i = DataGrid1.Row Then Exit Do i = DataGrid1.Row For j = 0 To DataGrid1.Columns.Count - 1 With xlsApp .Cells(DataGrid1.Row + 1, j + 1) = DataGrid1.Columns(j).Text End With Next DataGrid1.Row = DataGrid1.Row + 1 Loop If xlsApp.ActiveWorkbook.Saved = False Then xlsApp.ActiveWorkbook.SaveAs App.Path & "\mmm0.xls" End If xlsApp.Quit Set xlsApp = Nothing
既然考虑了导出到excel,何不用excel现成的打印功能.导出excel:
Private Sub Command9_Click()
Dim i As Long, j As Long
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlssheet As Excel.Worksheet
Set xlsApp = New Excel.Application
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.Workbooks.Add
xlsApp.Sheets("Sheet1").Select
DataGrid1.Row = 0
i = 1
Do While DataGrid1.Row >= 0
If i = DataGrid1.Row Then Exit Do
i = DataGrid1.Row For j = 0 To DataGrid1.Columns.Count - 1
With xlsApp
.Cells(DataGrid1.Row + 1, j + 1) = DataGrid1.Columns(j).Text
End With
Next
DataGrid1.Row = DataGrid1.Row + 1
Loop If xlsApp.ActiveWorkbook.Saved = False Then
xlsApp.ActiveWorkbook.SaveAs App.Path & "\mmm0.xls"
End If
xlsApp.Quit
Set xlsApp = Nothing
invalid row numer
错误定位在了:DataGrid1.Row = DataGrid1.Row + 1“黄色底色”
另外我的表中有身份证字段:并不是所有的字段显示身份证,而是以科学计数法来显示3.7063E+17
也有几条记录显示正确身份证,请大侠帮忙解决
Dim i As Long, j As Long