亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Access97的報表解決方案

2019-11-18 17:46:30
字體:
來源:轉載
供稿:網友
利用OLE自動化解決ACESS97中文版報表生成器直線不能往下順延的缺陷

access97是一個非常優秀的數據庫軟件,它不僅能充當辦公自動化的桌面數據管理工具,也是一個開發Client/Server產品的優秀前端開發工具.它的特點是易學易用、工具豐富、不需寫大量代碼就可以在很短的時間內開發出界面優美且功能強大的系統,長期以來受到廣大開發者的青睞。但筆者在使用時發現其報表生成器中有一個明顯不適合我國國情的缺陷,就是當設置報表DETAIL節上的字段長度因為橫向空間不夠而設為自動向下順延(CanGrow屬性為True)時,如果字段旁有豎線(國內大部分公文報表都有豎線,而國外則很少有),則豎線不能和字段一起向下順延。使整個報表看起來不美觀。這個缺陷在ACCESS2.0和ACCESS97中文版上都有,而在FoxPRo2.5B/3.0/5.0下卻沒有。據微軟技術服務部的工作人員說是由于本地化時測試不夠原因所致。為此,筆者在ACCESS內采用了OLE自動化!
方法,將ACCESS97查詢生成的表送交Excel97進行處理(分類匯總、打印、預演),較好地解決了這個問題。由于ACCESS97和EXCEL97的VBA在97版本上幾乎完全兼容,在EXCEL97下錄制的宏代碼只需在ACCESS下稍加修改就行了,所以采用此方法和用內部報表生成器設計所用的時間差不多。整個工作需要下面幾步:
在EXCEL97下設計好報表的樣式,包括表頭、頁眉、頁碼等,對需要自動翻轉的列,在"單元格格式設置"下設為"自動換行"。
在EXCEL97下錄制好當數據送入后進行的操作宏(如分類匯總、加邊框線,加空行、打印輸出、預演等動作)。
在ACCESS下用VBA語句和DAO對象的方法將數據送入EXCEL表內,并將EXCEL下宏操作變成ACCESS下的語句。
以下是ACCESS97下的程序代碼,實際應用程序界面是一個對話框屏幕(FORM),上面有五個下拉框(Comb_)和一個文字框(Text),由用戶選擇相應的信息,然后用戶按"確定"命令按鈕執行程序。其中有些屬性和方法在ACCESS2.0下不能使用,可采用相應的語句.
PrivateSub確認_Click()
OnErrorGoToErrorHandler
DimstDocNameAsString
DimkAsInteger
stDocName="Pqry_YEAR"
DoCmd.OpenQuerystDocName'從原始表內根據用戶輸入的信息條件運行"生成表查詢",生成一個供打印用的表.
'增加空記錄處理--為了保證記錄數少時也打印整張表.


IfVal(Me![Comb空行])>0Then'如果用戶輸入了大于0的數值,表示加空行


Fork=1ToVal(Me![Comb空行])
CurrentDb.Execute"INSERTINTOPqry_YEAR
(項目類)VALUES('空行空行空行');"
Nextk
EndIf
DimmsgVarAsInteger
'定義EXCEL對象變量
'------------------------------
DimxlobjAsObject
DimxlsheetobjAsObject
DimxlrangeAsObject
'------------------------------
'定義ACESS記錄集對象變量
DimdbsAsDatabase,rstAsRecordset
DimstrSQLAsString
DimrecTotal,fieldTotalAsInteger'recTotal:
表示該表內記錄總數;
fieldTotal表示字段總數
Dimi,jAsInteger
i=0
j=0
'Returnreferencetocurrentdatabase.
Setdbs=CurrentDb'當前數據庫
Setrst=dbs.OpenRecordset("Pqry_YEAR")'選擇記錄集
recTotal=rst.RecordCount'得出記錄數
fieldTotal=rst.Fields.Count'得出字段數
'----------------------------------
'建立EXCEL對象
Setxlobj=CreateObject("Excel.application.8")
'打開設計好的EXCEL表--REPORT.XLS
xlobj.Workbooks.OpenFileName:=pPathname&"REPORT.xls"
Setxlsheetobj=xlobj.ActiveWorkbook.Worksheets("REPORT")
'指向工作表
'如果是改動過的表,不再打開
IfMsgBox("當前打印表格文件中已有數據,
是否需要更新?"
&Chr(13)&_
"提示:只有對數據進行改動后,才需要更新.",68)
=vbYesThen
DoCmd.HourglassTrue'由于時間較長,
將鼠標設為沙漏形狀
xlsheetobj.Rows("5:200").Select'選定區域
xlobj.Selection.DeleteShift:=-4162'
注意!原錄制宏中-4162為xlnone,是EXCEL97的常量,但在ACCESS下卻不認,只能到EXCEL下的對象瀏覽器去查詢對應的常數.
'開始向EXCEL傳送數據
DoUntilrst.EOF
Forj=1TofieldTotal
xlsheetobj.cells(5 i,j).Value=rst.Fields(j-1)
Nextj
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
Withxlobj.Selection.Borders(7)
.LineStyle=1
.Weight=-4138
.ColorIndex=-4105
EndWith

Withxlobj.Selection
'確定是合計在表上還是在表尾
IfMe![Fram位置]=1Then
.SubtotalGroupBy:=2,Function:=-4157,
TotalList:=Array(6,9,10,_
11,12,13,14,15,16),Replace:=True,
PageBreaks:=False,_
SummaryBelowData:=False
Else
.SubtotalGroupBy:=2,Function:=-4157,
TotalList:=Array
(6,9,10,_
11,12,13,14,15,16),Replace:=True,
PageBreaks:=False,_
SummaryBelowData:=True
EndIf
EndWith
'根據用戶的選擇設置頁眉和頁尾。
Withxlsheetobj.PageSetup
.LeftHeader=""&Chr(10)&""&Chr(10)&"
"&Mid(Me![Cmbo單位],4)
.CenterHeader="&""宋體,加粗""&18"&Me!
[Cmbo年度]&"年"&Mid(Me![Cmbo類別],4)&"XXX表"
EndWith
xlsheetobj.Range("A1").Select
'將空行內容清掉
k=Val(Me![Comb空行])
IfVal(Me![Comb空行])>0Then
DimcontentAsString
i=5
content=xlsheetobj.cells(i,2).formulaR1C1
DoWhileInStr(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
EndIf

Else'不更新
xlsheetobj.Activate
EndIf
xlobj.ActiveWindow.SelectedSheets.PrintPreview'預演報表
'如為打?。簒lobj.ActiveWindow.SelectedSheets.PrintOut
DoCmd.HourglassFalse'恢復鼠標形狀
xlobj.Visible=True'讓EXCEL可見
清除對象變量空間,節省內存
Setdbs=Nothing
Setxlobj=Nothing
xlobj.quit'關閉EXCEL
ExitSub
ErrorHandler:'出錯處理
DoCmd.HourglassFalse
MsgBox"Errornumber"&Err.Number&":"&Err.DescrResumeNext
EndSub
通過這個例子我們看到在OFFICE97下利用OLE自動化擴展應用程序的功能是多么方便和強大。用EXCEL完成的報表的優點是格式美觀,修改方便.缺點是第一次生成EXCEL表格時速度較慢.
本例是用EXCEL對數據進行報表操作,其實也可參照此例的方法在EXCEL上建立圖形統計、財務分析、數據透視表分析等應用程序,只要在EXCEL下錄制相應的宏,再加到ACCESS下就行了。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品模特av私拍在线观看| 97视频在线观看播放| 亚洲精品成a人在线观看| 欧美一级电影在线| 在线日韩日本国产亚洲| 国产福利视频一区| 2019中文字幕在线免费观看| 国产欧美一区二区三区久久人妖| 久久国产一区二区三区| www国产91| 日韩精品中文在线观看| 久久综合久久美利坚合众国| 国产一区二区丝袜高跟鞋图片| 欧美日韩成人在线视频| 免费91麻豆精品国产自产在线观看| 日韩经典中文字幕在线观看| 揄拍成人国产精品视频| 亲子乱一区二区三区电影| 8090理伦午夜在线电影| 68精品国产免费久久久久久婷婷| 欧美一级淫片丝袜脚交| 国产精品免费看久久久香蕉| 成人综合国产精品| 成人免费大片黄在线播放| 4438全国成人免费| 国内精品小视频| 97久久国产精品| 久久精品视频99| 亚洲欧洲日产国码av系列天堂| 日韩欧美在线一区| 国产福利视频一区二区| 亚洲直播在线一区| 成人免费看黄网站| 亚洲最新av网址| 国内精品久久久久久中文字幕| 亚洲激情视频在线| 最新91在线视频| 亚洲美腿欧美激情另类| 亚洲国产私拍精品国模在线观看| 日韩av网站在线| 人妖精品videosex性欧美| 成人黄色在线免费| 亚洲国产欧美一区二区三区久久| 国产一区二区三区欧美| 88国产精品欧美一区二区三区| 午夜精品蜜臀一区二区三区免费| 久久综合五月天| 日韩一级裸体免费视频| 国产精品久久久久久久久粉嫩av| www.日韩系列| 欧美日韩在线第一页| 国产亚洲精品一区二555| 国产xxx69麻豆国语对白| 26uuu另类亚洲欧美日本老年| 午夜精品久久久久久久99黑人| 亚洲第一色在线| 欧美日韩在线第一页| 国产mv久久久| 日韩亚洲欧美成人| 日本午夜精品理论片a级appf发布| 亚洲天堂一区二区三区| 国产黑人绿帽在线第一区| 精品久久久久久久久久| 欧美成人一二三| 国产精品亚洲精品| 正在播放国产一区| 日韩有码在线观看| 成人xvideos免费视频| 色综合天天综合网国产成人网| 国产精品久久久久7777婷婷| 久久久久久91| 久久久久久久久久婷婷| 国产精品日韩欧美| 日韩av在线天堂网| 国产精品久久久久久久久久久久久久| 国产精品稀缺呦系列在线| 成人av在线网址| 色婷婷综合成人av| 国产精品视频网站| 一本色道久久综合狠狠躁篇怎么玩| 亚洲人高潮女人毛茸茸| 久久香蕉频线观| www.亚洲一二| 欧美极品欧美精品欧美视频| 97在线精品视频| 日韩av一区在线| 人体精品一二三区| 久久久久在线观看| 欧美视频在线观看 亚洲欧| 亚洲欧美在线免费| 亚洲国产精品人人爽夜夜爽| 国产免费观看久久黄| 欧美另类老肥妇| 成人免费观看49www在线观看| 91精品一区二区| 精品福利一区二区| 国外色69视频在线观看| 亚洲成人国产精品| www.久久久久| 精品偷拍各种wc美女嘘嘘| 97在线免费观看视频| 久久久久久久久久av| 精品偷拍一区二区三区在线看| 国产99久久精品一区二区 夜夜躁日日躁| 黄网站色欧美视频| 亚洲丁香久久久| 亚洲一区二区三区香蕉| 色99之美女主播在线视频| 一区二区三区视频在线| 亚洲国产精品一区二区久| 国产欧美一区二区三区四区| 欧美电影院免费观看| 日韩免费在线免费观看| 日韩高清欧美高清| 亚洲色图18p| 国产精品成人久久久久| 亚洲精品中文字| 亚洲自拍小视频免费观看| 欧美成人午夜剧场免费观看| 国产成人97精品免费看片| 久久久久国产一区二区三区| 国产日韩在线视频| 欧美性猛交xxxx富婆弯腰| 亚洲自拍偷拍色图| 91高潮在线观看| 亚洲精品久久久久国产| 亚洲天堂av在线免费| 成人免费网站在线| 亚洲老板91色精品久久| 欧美日韩精品在线播放| 色综合天天综合网国产成人网| 久久99久久亚洲国产| 影音先锋欧美在线资源| 日韩免费在线免费观看| 最近中文字幕mv在线一区二区三区四区| 国产精品人成电影在线观看| 精品久久久香蕉免费精品视频| 2019国产精品自在线拍国产不卡| 91精品国产91久久久久福利| 综合国产在线观看| 久久久久在线观看| 成人有码在线视频| 日本成人在线视频网址| 国产精品视频区| 2019中文字幕在线免费观看| 欧美日韩激情视频8区| 欧洲永久精品大片ww免费漫画| 国产成人极品视频| 97在线观看视频国产| 丁香五六月婷婷久久激情| 亚洲乱码一区二区| 日韩精品免费综合视频在线播放| 欧美电影在线播放| 欧美色视频日本版| 亚洲国产成人久久| 欧美成人精品影院| 91网站在线免费观看| 91视频免费网站| 成人激情在线观看| 成人乱色短篇合集| 久久99国产精品久久久久久久久| 国产精品电影观看| 一区二区三区美女xx视频| 欧美福利在线观看|