= VBYes Then DoCmd.Hourglass True ' 由于时间较长, 将鼠标设为沙漏形状 xlsheetobj.Rows("5:200").Select ' 选定区域 逆风者 xlobj.Selection.Delete Shift:=-4162 ' 注意! 原录制宏中-4162 为xlnone, 是EXCEL97 的常量, 但在ACCESS 下却不认, 只能到EXCEL 下的对象浏览器去查询对应的常数. ' 开始向EXCEL 传送数据 Do Until rst.EOF For j = 1 To fieldTotal xlsheetobj.cells(5 i, j).Value = rst.Fields(j - 1) Next j rst.MoveNext i = i 1 Loop rst.Close
'在EXCEL中调整,具体常数参见EXCEL下的对象浏览器 xlsheetobj.Range("A4:Q" & Trim(Str(recTotal 4))). Select ' 选定范围 '以下为设置边框线录制的宏代码,已删除了相似的语句. xlobj.Selection.Borders(5).LineStyle = -4142 xlobj.Selection.Borders(6).LineStyle = -4142 With xlobj.Selection.Borders(7) .LineStyle = 1 .Weight = -4138 .ColorIndex = -4105 End With
With xlobj.Selection ' 确定是合计在表上还是在表尾 If Me![Fram 位置] = 1 Then .Subtotal GroupBy:=2, Function:=-4157, TotalList:=Array(6, 9, 10, _ 11, 12, 13, 14, 15, 16), Replace:=True, PageBreaks:=False, _ SummaryBelowData:=False Else .Subtotal GroupBy:=2, Function:=-4157, TotalList:=Array (6, 9, 10, _ 11, 12, 13, 14, 15, 16), Replace:=True, PageBreaks:=False, _ SummaryBelowData:=True End If End With ' 根据用户的选择设置页眉和页尾。 With xlsheetobj.PageSetup .LeftHeader = "" & Chr(10) & "" & Chr(10) & " " & Mid(Me![Cmbo 单位], 4) .CenterHeader = "&"" 宋体, 加粗""&18 " & Me! [Cmbo 年度] & " 年" & Mid(Me![Cmbo 类别], 4) & "XXX 表" End With xlsheetobj.Range("A1").Select ' 将空行内容清掉 k = Val(Me![Comb 空行]) If Val(Me![Comb 空行]) > 0 Then Dim content As String i = 5 content = xlsheetobj.cells(i, 2).formulaR1C1 Do While InStr(1, content, " 空行空行空行") = 0 i = i 1 content = xlsheetobj.cells(i, 2).formulaR1C1 Loop xlsheetobj.Range("B" & Trim(Str(i - k 5)) & ":" & "Q" & Trim(Str(i 5))).Select xlobj.Selection.ClearContents xlsheetobj.Range("A1").Select End If
Else ' 不更新 xlsheetobj.Activate End If xlobj.ActiveWindow.SelectedSheets.PrintPreview ' 预演报表 ' 如为打印:xlobj.ActiveWindow.SelectedSheets.PrintOut DoCmd.Hourglass False ' 恢复鼠标形状 xlobj.Visible = True ' 让EXCEL 可见 清除对象变量空间,节省内存 Set dbs = Nothing Set xlobj = Nothing xlobj.quit ' 关闭EXCEL Exit Sub ErrorHandler: ' 出错处理 DoCmd.Hourglass False MsgBox "Error number " & Err.Number & ": " & Err.Description ' Resume with statement following occurrence of error. Resume Next End Sub 通过这个例子我们看到在OFFICE97 下利用OLE 自动化扩展应用程序的功能是多么方便和强大。用EXCEL 完成的报表的优点是格式美观, 修改方便. 缺点是第一次生成EXCEL 表格时速度较慢. 本例是用EXCEL 对数据进行报表操作, 其实也可参照此例的方法在EXCEL 上建立图形统计、财务分析、数据透视表分析等应用程序,只要在EXCEL 下录制相应的宏,再加到ACCESS 下就行了。 本文章更多内容:<<上一页 - 1 - 2 |