Access中用VBA實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)_第1頁(yè)
Access中用VBA實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)_第2頁(yè)
Access中用VBA實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)_第3頁(yè)
Access中用VBA實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)_第4頁(yè)
Access中用VBA實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(使用實(shí)例技巧)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、什么情況下用鏈接表,什么情況用導(dǎo)入表功能何時(shí)使用導(dǎo)入或聯(lián)接在Access中,可以很方便地從外部數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),這些數(shù)據(jù)庫(kù)包括現(xiàn)在所有的各種主流數(shù)據(jù)庫(kù),像Dbase、Sybase、Oracle、Foxpro等。這樣你就不用去一個(gè)一個(gè)地重新輸入原來(lái)的數(shù)據(jù)了。在Access中,可以用“獲取外部數(shù)據(jù)”命令來(lái)獲取外部數(shù)據(jù)庫(kù)的數(shù)據(jù),這個(gè)命令包括兩種方式“導(dǎo)入”和“鏈接表”。對(duì)于不同的外部數(shù)據(jù)庫(kù)可以用不同的獲取方式。而且在Access中,不光可以獲取外部數(shù)據(jù),還可以導(dǎo)出別的數(shù)據(jù)庫(kù),就是將用Access建立的數(shù)據(jù)庫(kù)保存為別的數(shù)據(jù)庫(kù)形式,像FOXPRO,DBASE數(shù)據(jù)庫(kù)等。單擊“文件”菜單中的“獲取外部數(shù)據(jù)”

2、項(xiàng),彈出一個(gè)子菜單,上面有“導(dǎo)入”和“鏈接表”兩個(gè)選項(xiàng)。我們單擊其中的一個(gè)選項(xiàng)就可以實(shí)現(xiàn)導(dǎo)入或聯(lián)接一個(gè)外部的數(shù)據(jù)庫(kù)。雖然這兩個(gè)命令的功用都是打開(kāi)外部的一個(gè)數(shù)據(jù)庫(kù),并從中獲取需要的數(shù)據(jù),但在使用上,還是有差別的。在我們使用“導(dǎo)入”這個(gè)方法來(lái)獲取外部數(shù)據(jù)時(shí)需要注意幾個(gè)條件。一、需要我們打開(kāi)的數(shù)據(jù)庫(kù)文件相對(duì)來(lái)說(shuō)比較小,而且不會(huì)被其他數(shù)據(jù)庫(kù)應(yīng)用程序的用戶(hù)頻繁更改。二、不需要與其他數(shù)據(jù)庫(kù)應(yīng)用程序的用戶(hù)共享數(shù)據(jù)。三、你正在替換以前的數(shù)據(jù)庫(kù)應(yīng)用程序,而且不再需要以前的數(shù)據(jù)格式。四、在使用其他數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),需要最佳性能。使用“鏈接表”方法來(lái)獲取外部數(shù)據(jù)時(shí)也需要注意幾個(gè)條件:一、需要打開(kāi)的文件比較大,甚至比

3、本地Access數(shù)據(jù)庫(kù)的最大容量(1GB)還要大。二、這個(gè)文件經(jīng)常被其他數(shù)據(jù)庫(kù)應(yīng)用程序的用戶(hù)更改。三、必須在網(wǎng)絡(luò)上與其他數(shù)據(jù)庫(kù)應(yīng)用程序的用戶(hù)共享這個(gè)文件。四、需要把應(yīng)用程序分布到幾個(gè)單獨(dú)的用戶(hù)那里,而且,你可能要不斷更新開(kāi)發(fā)的應(yīng)用程序接口,將“應(yīng)用程序”與數(shù)據(jù)分開(kāi)可以更容易地更新應(yīng)用程序,而不會(huì)干擾用戶(hù)積累的數(shù)據(jù)。這就是為什么要在“獲取外部數(shù)據(jù)”這個(gè)過(guò)程當(dāng)中設(shè)置兩種方法。如果要用的數(shù)據(jù)庫(kù)并不大,但每天都可能要修改,而且由幾個(gè)人來(lái)修改不同的部分,對(duì)于這種情況,最重要的是每天都有新的數(shù)據(jù)要處理,而單純的將表導(dǎo)入進(jìn)來(lái),由于在Access中開(kāi)發(fā)新的系統(tǒng)需要一定的時(shí)間,在這段時(shí)間內(nèi)就有可能有新的數(shù)據(jù)輸入

4、進(jìn)來(lái)。開(kāi)始導(dǎo)入的數(shù)據(jù)就有很多可能已經(jīng)更新了。所以這時(shí)使用“鏈接表”就不會(huì)出現(xiàn)這種問(wèn)題,干擾到別的用戶(hù)積累的數(shù)據(jù)。當(dāng)然在Access中執(zhí)行現(xiàn)在這臺(tái)機(jī)器上的數(shù)據(jù)庫(kù)文件是最快的,使用鏈接常常會(huì)因?yàn)楹芏嘣蚴鼓愕墓ぷ髯兊煤苈?,這點(diǎn)是你必須考慮的。導(dǎo)入表的高級(jí)功能規(guī)格文件哈,原來(lái)導(dǎo)入的字段類(lèi)型,分隔符,寬度都是可能在菜單里具體定義的。而且規(guī)格文件還可以保存待下次手工再導(dǎo)就不用設(shè)了。多方便。這么好用的功能,大家都會(huì)想,它的VBA代碼的導(dǎo)入方法是什么呢?如果用遍歷來(lái)那不是可以批量導(dǎo)入了。那真是帥呆了。呵呵。以下我的筆記:我是否可以將Excel數(shù)據(jù)導(dǎo)入?可以,手動(dòng)方式:打開(kāi)數(shù)據(jù)庫(kù),或切換到打開(kāi)數(shù)據(jù)庫(kù)的“數(shù)據(jù)庫(kù)

5、”窗口若要導(dǎo)入電子表格,請(qǐng)?jiān)凇拔募辈藛紊?,指向“獲取外部數(shù)據(jù)”,然后單擊“導(dǎo)入”。若要鏈接電子表格,請(qǐng)?jiān)凇拔募辈藛紊?,指向“獲取外部數(shù)據(jù)”,然后單擊“鏈接表”。在“導(dǎo)入”(或“鏈接”)對(duì)話(huà)框中,選擇“文件類(lèi)型”框中的“MicrosoftExcel(*.xls)”。單擊“查找范圍”框右側(cè)的箭頭,選定電子表格文件所在的驅(qū)動(dòng)器和文件夾,然后雙擊其圖標(biāo)。若要導(dǎo)入這些文件,首先必須將每個(gè)工作表保存為一個(gè)單獨(dú)的文件。且電子表格列標(biāo)題與表字段名相匹配,才可以在已有表上追加數(shù)據(jù)。請(qǐng)注意,上面文章中其實(shí)仍然包含了兩種做法和一種擴(kuò)展做法:1、直接用導(dǎo)入2、用鏈接表3、當(dāng)你只是要導(dǎo)入EXCEL數(shù)據(jù)到現(xiàn)有的表中時(shí)

6、,可以先鏈接某個(gè)xls文件,然后直接用jetsql語(yǔ)句來(lái)做:insertintoAccess表名(field1field2)selectfield1field2fromxl鏈接表正點(diǎn)導(dǎo)入的代碼介紹編程方式:Transferspreadsheet方法與transfertext方法有相似之處:導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)方式:文本transfertext方法:DoCmd.TransferText(TransferType,SpecificationName,TableName,FileName,HasFieldNames,HTMLTableName,CodePage)表格TransferSpreadsheet方

7、法DoCmd.TransferSpreadsheet(TransferType,SpreadsheetType,TableName,FileName,HasFieldNames,Range,UseOA)執(zhí)行命令.TransferSpreadsheet(TransferType:=aclmport默認(rèn)方式或acLink鏈接方式導(dǎo)入導(dǎo)出,SpreadsheetType:=導(dǎo)入導(dǎo)出EXCEL表類(lèi)型),TableName=Access表名,FileName:=EXCEL表名,HasFieldNames:=-1為一行作表標(biāo)題,0則不作,Range:=導(dǎo)入表格區(qū)域)SpreadsheetType、Spec

8、ificationName前者為EXCEL版本類(lèi)型,后者即創(chuàng)建導(dǎo)入導(dǎo)出規(guī)格的分隔格式文件名稱(chēng),一般同夾使用。女如schema.ini文件為系統(tǒng)默認(rèn)固度寬度文件如該參數(shù)留空,則取默認(rèn)的導(dǎo)入/導(dǎo)出規(guī)格在導(dǎo)文本中,特別留意其SpecificationName參數(shù).schema.ini文件為系統(tǒng)默認(rèn)文本導(dǎo)入規(guī)格文件不過(guò)這個(gè)文件不知道怎么查看,在導(dǎo)入文本文件中有指引學(xué)習(xí)與修改更簡(jiǎn)單的是自己錄一個(gè)規(guī)格文件,即外部數(shù)據(jù)源-導(dǎo)入表-高級(jí)規(guī)格文件保存該規(guī)格表在本數(shù)據(jù)庫(kù)里,它隱藏了,只要打開(kāi)選項(xiàng),將去掉勾在表模塊中就可以看到規(guī)格表了.即(MSysIMEXcolumns、MSysIMEXspecs).例:Trans

9、ferType常量AcTextTransferType如I下:ac為常量類(lèi)型,Ex為出,Im為入.link為鏈接型形式Link為鏈接,Delim定義分隔符,Fixedl固定寬度,Merge為Wordforwindows合并文件導(dǎo)出分隔符導(dǎo)入分隔符鏈接表分隔符acExportDelimacImportDelim默認(rèn)acLinkDelim導(dǎo)出固寬符導(dǎo)入固寬符鏈接表固寬符acExportFixedacImportFixedacLinkFixed導(dǎo)出HTML導(dǎo)入HTML鏈接HTMLacExportHTMLacImportHTMLacLinkHTML導(dǎo)出WORD格式acExportMerge其實(shí)他們多是

10、是可選參數(shù),有默認(rèn)值的:只用這個(gè)就行:DoCmd.TransferSpreadsheet,Employees,C:1.xls,True,A1:G12上面示例1.xls指定范圍內(nèi)將表導(dǎo)入到access的表“Employees”中,并用電子表格中的第一行作為字段名。再例:DoCmd.TransferSpreadsheetacImport,acSpreadsheetTypeExcel9,juan,c:d.xls,True,sheet!默認(rèn)方式導(dǎo)入,Excel版本類(lèi)型,access表名,xls薄名,是否有行標(biāo)題,”工作表!導(dǎo)入表中的另類(lèi)方法:如果一個(gè)工作薄里有多個(gè)表要導(dǎo)入,也可以使用如下方法:一個(gè)按鈕

11、導(dǎo)入四個(gè)工作表到數(shù)據(jù)庫(kù):例子:假設(shè)已經(jīng)建好數(shù)據(jù)庫(kù)myAccessTable那么:以下為插入指定記錄的代碼:(有表頭)insertintomyAccessTableselect*fromEXCEL8.0;DATABASE=C:info.XLS.sheet1unionallselect*fromEXCEL8.0;DATABASE=C:info.XLS.sheet2unionallselect*fromEXCEL8.0;DATABASE=C:info.XLS.sheet3unionallselect*fromEXCEL8.0;DATABASE=C:info.XLS.sheet4規(guī)格文件在哪里查看?在代碼里怎么用?在導(dǎo)文本中,特別留意其SpecificationName參數(shù).schema.ini文件為系統(tǒng)默認(rèn)文本導(dǎo)入規(guī)格文件不過(guò)這個(gè)文件不知道怎么查看,在導(dǎo)入文本文件中有指引學(xué)習(xí)與修改更簡(jiǎn)單的是自己錄一個(gè)規(guī)格文件,即外部數(shù)據(jù)源-導(dǎo)入表-高級(jí)規(guī)格文件保存該規(guī)格表在本數(shù)據(jù)庫(kù)里,它隱藏了,只要打開(kāi)選項(xiàng),將去掉勾在表模塊中就可以看到規(guī)格表了即(MSysIMEXcolumns、MSysIMEXspecs).一種方法:有了手工保存的規(guī)格文件,在代碼文件里直接調(diào)用它。另一種方法:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論