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

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

利用OLE自動化解決ACESS97中文版報表生成器直線不能往下順延的缺陷

2019-11-18 17:37:44
字體:
來源:轉載
供稿:網友
->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.Descr ResumeNext
EndSub
    通過這個例子我們看到在OFFICE97下利用OLE自動化擴展應用程序的功能是多么方便和強大。用EXCEL完成的報表的優點是格式美觀,修改方便.缺點是第一次生成EXCEL表格時速度較慢.
    本例是用EXCEL對數據進行報表操作,其實也可參照此例的方法在EXCEL上建立圖形統計、財務分析、數據透視表分析等應用程序,只要在EXCEL下錄制相應的宏,再加到ACCESS下就行了。->
->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清一级大片| 久久精品亚洲精品| 日本高清+成人网在线观看| 国产一区二区三区日韩欧美| 亚洲精品videossex少妇| 亚洲精品一区av在线播放| 一本色道久久综合亚洲精品小说| 色综合色综合久久综合频道88| 久久久久久久一区二区三区| 中文字幕精品久久久久| 国产精品久久激情| 91精品国产综合久久久久久蜜臀| 亚州国产精品久久久| 中文字幕在线视频日韩| 国产精品亚洲一区二区三区| 性日韩欧美在线视频| 2018中文字幕一区二区三区| 日韩在线视频免费观看| 精品久久久国产精品999| 国产精品视频午夜| 粉嫩av一区二区三区免费野| 欧美激情欧美狂野欧美精品| 国产欧美精品一区二区三区-老狼| 亚洲电影免费观看高清| 久久久亚洲成人| 国产精品久久久久免费a∨大胸| 亚洲毛片在线免费观看| 亚洲精品色婷婷福利天堂| 国产精品亚洲片夜色在线| 亚洲精品视频免费| 欧美疯狂xxxx大交乱88av| 亚洲欧美国产日韩中文字幕| 国产成人aa精品一区在线播放| 精品国产91久久久| 日韩免费不卡av| 亚洲无av在线中文字幕| 欧美激情久久久久久| 清纯唯美亚洲综合| 亚洲国内精品视频| 国产精品高潮呻吟久久av黑人| 成人精品一区二区三区电影免费| 久久亚洲精品中文字幕冲田杏梨| 日韩美女在线观看一区| 成人黄色中文字幕| 亚洲网站在线看| 国产精品丝袜久久久久久高清| 午夜精品福利在线观看| 亚洲成人动漫在线播放| 亚洲人精品午夜在线观看| 亚洲欧美日韩精品久久奇米色影视| 久久久免费精品| 欧美精品videosex极品1| 日韩电影中文字幕在线| 97在线视频国产| 亚洲精品一二区| 欧美专区国产专区| 91国自产精品中文字幕亚洲| 福利二区91精品bt7086| 国产在线视频一区| 欧美黑人狂野猛交老妇| 亚洲人成欧美中文字幕| 日韩电影免费在线观看| 国产精品高清在线观看| 成人免费在线视频网址| 精品视频久久久久久| 中文字幕久久亚洲| 亚洲欧美日韩中文在线| 97在线看免费观看视频在线观看| 狠狠综合久久av一区二区小说| 欧美极品美女电影一区| 日韩中文字幕免费看| 26uuu日韩精品一区二区| 一本色道久久综合狠狠躁篇的优点| 亚洲一区中文字幕| 久久久免费观看| 久久精品国产综合| 精品国产欧美成人夜夜嗨| 欧美www视频在线观看| 国产精品小说在线| 欧美精品激情blacked18| 国产精品久久久久av| 成人高h视频在线| 亚洲欧美成人一区二区在线电影| 91亚洲精品在线观看| 97在线看免费观看视频在线观看| 日韩中文字幕免费看| 一本色道久久综合亚洲精品小说| 久久国产精品久久久久久| 中文字幕亚洲综合久久| 国产精品永久免费| 中日韩美女免费视频网站在线观看| 日韩欧美国产一区二区| 日韩视频欧美视频| 中文字幕亚洲第一| 2019中文字幕免费视频| 日韩av免费一区| xvideos国产精品| 欧美国产乱视频| 91成人在线播放| 国产精品com| 国产欧美最新羞羞视频在线观看| 欧美激情二区三区| 国产精品视频中文字幕91| 国产成人一区三区| 日本19禁啪啪免费观看www| 国产精品久久综合av爱欲tv| 成人欧美一区二区三区黑人| 在线看日韩av| 91av在线免费观看| 精品国产91乱高清在线观看| 日韩成人在线免费观看| 国产一区二中文字幕在线看| 青青草原一区二区| 欧美性极品xxxx娇小| 欧美激情小视频| 欧美视频13p| 久久青草精品视频免费观看| 国产一区二区美女视频| 久久国产精品免费视频| 97精品欧美一区二区三区| 亚洲娇小xxxx欧美娇小| 久久久人成影片一区二区三区| 欧美激情第三页| 麻豆一区二区在线观看| 国产97在线|亚洲| 欧美天堂在线观看| 最近中文字幕2019免费| 亚洲视频在线播放| 美女精品视频一区| 91精品视频播放| 日韩电影免费在线观看| 久久五月情影视| 91在线观看免费高清| 97视频在线观看视频免费视频| 亚洲成在人线av| 精品免费在线视频| 九九热精品视频在线播放| 日韩av在线一区二区| 欧美做爰性生交视频| 亚洲天堂av高清| 欧美日韩一区二区三区在线免费观看| 欧美日韩国产一中文字不卡| 欧美视频在线观看免费| 91av在线免费观看视频| 欧洲亚洲免费视频| 亚洲一区精品电影| 亚洲成人激情在线观看| 亚洲国产成人精品久久| 国产精品欧美日韩一区二区| 成人性生交大片免费看小说| 欧美又大粗又爽又黄大片视频| 欧美贵妇videos办公室| 色悠悠国产精品| 色久欧美在线视频观看| 91精品在线一区| 亚洲欧美日韩综合| 国产在线久久久| 亚洲午夜女主播在线直播| 亚洲天堂av在线免费观看| 国产日韩欧美中文在线播放| 欧美黄色片在线观看| 精品亚洲一区二区三区在线观看| 久久久国产成人精品| 久久久精品2019中文字幕神马|