技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 21536
|
我們經(jīng)常需要用Access處理一些Excel表的事務(wù),除了導(dǎo)入導(dǎo)出外,還會(huì)涉及到數(shù)據(jù)的整理等復(fù)雜問(wèn)題。我們可以在Access中引用Excel的對(duì)象,來(lái)完成這些任務(wù)。但有時(shí)候這并不是最好的選擇,其原因有二:其一是Access中使用Excel表對(duì)象時(shí),一些自動(dòng)的功能并不如Excel中實(shí)現(xiàn)的那么好,比較典型的是系統(tǒng)的枚舉常量總是需要去猜或者到處找資料;其二是有些在Excel中用代碼實(shí)現(xiàn)的功能,在Access的指揮下會(huì)失常,比如鎖定單元格,鎖定表,命名區(qū)域等等。如果你曾經(jīng)折騰過(guò)這類(lèi)問(wèn)題,對(duì)此會(huì)深有體會(huì)。
由此,我們希望在Excel中編寫(xiě)宏,然后在Access中來(lái)調(diào)用這些宏。假如這樣能實(shí)現(xiàn)的話,也就各得其所,也就是各回各家各找各媽?zhuān)l(fā)揮各自的優(yōu)勢(shì)。這個(gè)假設(shè)能成立嗎?答案是肯定的。我們可以通過(guò)兩個(gè)對(duì)象來(lái)調(diào)用Excel宏,其一是Workbook對(duì)象可以用RunAutoMacros方法來(lái)調(diào)用四個(gè)自動(dòng)宏(啟動(dòng)、關(guān)閉、活動(dòng)、不活動(dòng)),當(dāng)然這不太靈活;其二是Excel.Application對(duì)象,這個(gè)對(duì)象有一個(gè)Run方法可以運(yùn)行宏,而且還可以帶入30個(gè)以內(nèi)的參數(shù)。
本示例假設(shè)這樣一種場(chǎng)景,在Excel表中有一個(gè)“原始表”需要進(jìn)行整理,并在同一個(gè)工作簿中生產(chǎn)另外一個(gè)表,表名為“數(shù)據(jù)表”,這個(gè)數(shù)據(jù)表符合Access導(dǎo)入的規(guī)范。這個(gè)整理的工作由Excel中編寫(xiě)的宏(名為:數(shù)據(jù)整理)完成。Access窗體中設(shè)置一個(gè)按鈕,按鈕單擊事件中首先調(diào)用Excel中的宏,對(duì)原始表進(jìn)行整理,然后執(zhí)行一段代碼,將數(shù)據(jù)導(dǎo)入到Access的對(duì)應(yīng)數(shù)據(jù)表中。
當(dāng)然,這只是為了演示宏的調(diào)用方法,并非這個(gè)示例一定需要這樣處理。所以你不必說(shuō):“何必那么麻煩,我可以直接讀原始表中的數(shù)據(jù),并導(dǎo)入到Access!
示例:
視圖:
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)
x
|