資源描述:
《access中用vba實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、什么情況下用鏈接表,什么情況用導(dǎo)入表功能何時使用導(dǎo)入或聯(lián)接 在Access中,可以很方便地從外部數(shù)據(jù)庫中獲取數(shù)據(jù),這些數(shù)據(jù)庫包括現(xiàn)在所有的各種主流數(shù)據(jù)庫,像Dbase、Sybase、Oracle、Foxpro等。這樣你就不用去一個一個地重新輸入原來的數(shù)據(jù)了。在Access中,可以用“獲取外部數(shù)據(jù)”命令來獲取外部數(shù)據(jù)庫的數(shù)據(jù),這個命令包括兩種方式“導(dǎo)入”和“鏈接表”。對于不同的外部數(shù)據(jù)庫可以用不同的獲取方式。而且在Access中,不光可以獲取外部數(shù)據(jù),還可以導(dǎo)出別的數(shù)據(jù)庫,就是將用Access建立的數(shù)據(jù)庫保存為別的數(shù)據(jù)庫形式,像FOXPRO,DBASE數(shù)
2、據(jù)庫等?! 螕簟拔募辈藛沃械摹矮@取外部數(shù)據(jù)”項(xiàng),彈出一個子菜單,上面有“導(dǎo)入”和“鏈接表”兩個選項(xiàng)。我們單擊其中的一個選項(xiàng)就可以實(shí)現(xiàn)導(dǎo)入或聯(lián)接一個外部的數(shù)據(jù)庫。雖然這兩個命令的功用都是打開外部的一個數(shù)據(jù)庫,并從中獲取需要的數(shù)據(jù),但在使用上,還是有差別的。 在我們使用“導(dǎo)入”這個方法來獲取外部數(shù)據(jù)時需要注意幾個條件。一、需要我們打開的數(shù)據(jù)庫文件相對來說比較小,而且不會被其他數(shù)據(jù)庫應(yīng)用程序的用 戶頻繁更改。二、不需要與其他數(shù)據(jù)庫應(yīng)用程序的用戶共享數(shù)據(jù)。三、你正在替換以前的數(shù)據(jù)庫應(yīng)用程序,而且不再需要以前的數(shù)據(jù)格式。四、在使用其他數(shù)據(jù)庫中的數(shù)據(jù)時,需要
3、最佳性能?! ∈褂谩版溄颖怼狈椒▉慝@取外部數(shù)據(jù)時也需要注意幾個條件:一、需要打開的文件比較大,甚至比本地Access數(shù)據(jù)庫的最大容量(1GB)還要大。二、這個文件經(jīng)常被其他數(shù)據(jù)庫應(yīng)用程序的用戶更改。三、必須在網(wǎng)絡(luò)上與其他數(shù)據(jù)庫應(yīng)用程序的用戶共享這個文件。四、需要把應(yīng)用程序分布到幾個單獨(dú)的用戶那里,而且,你可能要不斷更新開發(fā)的應(yīng)用程序接口,將“應(yīng)用程序”與數(shù)據(jù)分開可以更容易地更新應(yīng)用程序,而不會干擾用戶積累的數(shù)據(jù)。 這就是為什么要在“獲取外部數(shù)據(jù)”這個過程當(dāng)中設(shè)置兩種方法。如果要用的數(shù)據(jù)庫并不大,但每天都可能要修改,而且由幾個人來修改不同的部分,對于這種
4、情況,最重要的是每天都有新的數(shù)據(jù)要處理,而單純的將表導(dǎo)入進(jìn)來,由于在Access中開發(fā)新的系統(tǒng)需要一定的時間,在這段時間內(nèi)就有可能有新的數(shù)據(jù)輸入進(jìn)來。開始導(dǎo)入的數(shù)據(jù)就有很多可能已經(jīng)更新了。所以這時使用“鏈接表”就不會出現(xiàn)這種問題,干擾到別的用戶積累的數(shù)據(jù)。當(dāng)然在Access中執(zhí)行現(xiàn)在這臺機(jī)器上的數(shù)據(jù)庫文件是最快的,使用鏈接常常會因?yàn)楹芏嘣蚴鼓愕墓ぷ髯兊煤苈?,這點(diǎn)是你必須考慮的。導(dǎo)入表的高級功能-規(guī)格文件哈,原來導(dǎo)入的字段類型,分隔符,寬度都是可能在菜單里具體定義的。而且規(guī)格文件還可以保存待下次手工再導(dǎo)就不用設(shè)了。。。多方便。這么好用的功能,大家都會想,
5、它的VBA代碼的導(dǎo)入方法是什么呢?如果用遍歷來那不是可以批量導(dǎo)入了。。。那真是帥呆了。。。。呵呵。以下我的筆記:我是否可以將Excel數(shù)據(jù)導(dǎo)入?可以,手動方式:打開數(shù)據(jù)庫,或切換到打開數(shù)據(jù)庫的“數(shù)據(jù)庫”窗口若要導(dǎo)入電子表格,請?jiān)凇拔募辈藛紊?,指向“獲取外部數(shù)據(jù)”,然后單擊“導(dǎo)入”。若要鏈接電子表格,請?jiān)凇拔募辈藛紊希赶颉矮@取外部數(shù)據(jù)”,然后單擊“鏈接表”。在“導(dǎo)入”(或“鏈接”)對話框中,選擇“文件類型”框中的“MicrosoftExcel(*.xls)”。單擊“查找范圍”框右側(cè)的箭頭,選定電子表格文件所在的驅(qū)動器和文件夾,然后雙擊其圖標(biāo)。若要導(dǎo)入
6、這些文件,首先必須將每個工作表保存為一個單獨(dú)的文件。且電子表格列標(biāo)題與表字段名相匹配,才可以在已有表上追加數(shù)據(jù)。請注意,上面文章中其實(shí)仍然包含了兩種做法和一種擴(kuò)展做法: 1、直接用導(dǎo)入 2、用鏈接表 3、當(dāng)你只是要導(dǎo)入EXCEL數(shù)據(jù)到現(xiàn)有的表中時,可以先鏈接某個xls文件,然后直接用jetsql語句來做:insertinto[Access表名](field1,field2)selectfield1,field2from[xls鏈接表]正點(diǎn)導(dǎo)入的代碼介紹編程方式:TransferSpreadsheet方法與transfertext方法有相似之處:導(dǎo)入
7、導(dǎo)出數(shù)據(jù)庫方式:文本transfertext方法:DoCmd.TransferText(TransferType,SpecificationName,TableName,FileName,HasFieldNames,HTMLTableName,CodePage)表格TransferSpreadsheet方法DoCmd.TransferSpreadsheet(TransferType,SpreadsheetType,TableName,FileName,HasFieldNames,Range,UseOA)執(zhí)行命令.TransferSpreadsheet(T
8、ransferType:=acImport默認(rèn)方式或acLink鏈接方式導(dǎo)入導(dǎo)出