Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3462|回復(fù): 6
打印 上一主題 下一主題

[ADO/DAO] 用ADO連接EXCEL2007后保存為ACCESS數(shù)據(jù)表的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2012-12-28 15:08:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位前輩,小弟新學(xué)ADO,想用ADO連接服務(wù)器上的EXCEL表作為數(shù)據(jù)源,待進(jìn)行某些數(shù)據(jù)處理后,再保存到Access表里面
研究了一下午,剛把連接EXCEL數(shù)據(jù)的步驟弄清楚,可是不知道如何保存成Access表

Dim Connstr As String
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
add = "D:\yuxgworkcenter\My Documents\SC Database\SourceData.xlsx"
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & add & ";Extended Properties='Excel 12.0 Macro;HDR=YES';"
cn.Open Connstr
rs.Open "Select * from [基礎(chǔ)數(shù)據(jù)$]", cn, adOpenKeyset, adLockOptimistic

上面是連接的代碼,接下來(lái)我想把記錄集rs保存到當(dāng)前Access數(shù)據(jù)庫(kù)的某個(gè)數(shù)據(jù)表中,數(shù)據(jù)表需要新建,請(qǐng)問(wèn)如何操作?
還望各位前輩不吝賜教,謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2012-12-28 17:16:07 | 只看該作者
既然你可以連接到 Excel 的數(shù)據(jù)表,那么你同樣可以連接到 Access 的表,然后,新建一個(gè)連接該表的記錄集,通過(guò)遍歷的辦法,將 Excel 記錄集的內(nèi)容,新增到 Access 記錄集中,這樣就完成了你的任務(wù)。
3#
發(fā)表于 2012-12-28 17:19:43 | 只看該作者
什么必要直接用生成查詢就可以從Excel表創(chuàng)建數(shù)據(jù)表了。
4#
 樓主| 發(fā)表于 2012-12-28 17:20:44 | 只看該作者
zhuyiwen 發(fā)表于 2012-12-28 17:16
既然你可以連接到 Excel 的數(shù)據(jù)表,那么你同樣可以連接到 Access 的表,然后,新建一個(gè)連接該表的記錄集,通 ...

謝謝回復(fù)!
請(qǐng)問(wèn)對(duì)于記錄集中數(shù)據(jù)的復(fù)制,是否只能逐行進(jìn)行?有沒(méi)有什么方法能夠按列或者整體復(fù)制?因?yàn)槲夷莻(gè)EXCEL表中數(shù)據(jù)量很大,如果遍歷的話估計(jì)要很久
5#
 樓主| 發(fā)表于 2012-12-28 17:55:29 | 只看該作者
todaynew 發(fā)表于 2012-12-28 17:19
什么必要直接用生成查詢就可以從Excel表創(chuàng)建數(shù)據(jù)表了。

其實(shí)導(dǎo)入EXCEL表后再操作也可以接受,不過(guò)因?yàn)橄虢柚@個(gè)問(wèn)題研究一下記錄集操作的相關(guān)技巧,所以還是想堅(jiān)持一下
請(qǐng)問(wèn)如果用某EXCEL表作為數(shù)據(jù)源建立了一個(gè)recordset,我能否用這個(gè)recordset執(zhí)行SQL生成查詢?
6#
發(fā)表于 2012-12-28 22:44:14 | 只看該作者
imono 發(fā)表于 2012-12-28 17:55
其實(shí)導(dǎo)入EXCEL表后再操作也可以接受,不過(guò)因?yàn)橄虢柚@個(gè)問(wèn)題研究一下記錄集操作的相關(guān)技巧,所以還是想堅(jiān) ...

除非反過(guò)來(lái),在Excel里寫ADO代碼來(lái)操作Access,不過(guò)結(jié)果還是要回到逐行寫入Access的。
最佳的辦法就是鏈接Excel數(shù)據(jù)表,然后用追加查詢把數(shù)據(jù)追加到Access本地表;或者直接用Access導(dǎo)入。
7#
 樓主| 發(fā)表于 2012-12-29 09:31:08 | 只看該作者
roych 發(fā)表于 2012-12-28 22:44
除非反過(guò)來(lái),在Excel里寫ADO代碼來(lái)操作Access,不過(guò)結(jié)果還是要回到逐行寫入Access的。
最佳的辦法就是鏈 ...

早上睡覺(jué)迷迷糊糊的時(shí)候夢(mèng)到有人告訴我可以把EXCEL表的名稱作為追加查詢的數(shù)據(jù)源,起來(lái)后很是激動(dòng),然后寫了如下語(yǔ)句:
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Add & ";Extended Properties='Excel 12.0 Macro;HDR=YES';"
cn.Open Connstr
cn.Execute "Select * into TEST1 from [基礎(chǔ)數(shù)據(jù)$];"
其中[基礎(chǔ)數(shù)據(jù)$]是EXCEL表中的表名,結(jié)果還是不行,請(qǐng)問(wèn)鏈接EXCEL數(shù)據(jù)表后,如何用追加查詢把數(shù)據(jù)追加到本地表?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 10:33 , Processed in 0.088234 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表