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

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

12下一頁(yè)
返回列表 發(fā)新帖
查看: 4843|回復(fù): 10
打印 上一主題 下一主題

[窗體] 與DAO或者ADO沒(méi)關(guān)系嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2015-5-22 22:37:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如下圖:

圖中測(cè)試按鈕的代碼是:
Private Sub 測(cè)試_Click()
MsgBox Me.學(xué)生成績(jī)_子窗體.Form.Recordset.RecordCount & "條記錄"
End Sub

我并沒(méi)有提前引用ADO或者DAO,直接用這個(gè)Recordset.RecordCount屬性
經(jīng)測(cè)試是可以的!但是在幫助文件中看到下面這句話:

感覺(jué)Recordset必須要和ADO或者DAO有關(guān)系,所以就矛盾了。
求壇友指正一下我哪里理解錯(cuò)了?

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

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

2#
發(fā)表于 2015-5-22 23:32:15 | 只看該作者
窗體  .Recordset
本身就可以是dao 或ado
有些引用不需要顯式引用的
3#
 樓主| 發(fā)表于 2015-5-23 09:17:28 | 只看該作者
tmtony 發(fā)表于 2015-5-22 23:32
窗體  .Recordset
本身就可以是dao 或ado
有些引用不需要顯式引用的

老師,常見(jiàn)的有哪些對(duì)象本身可以視為DAO或者ADO呢?
現(xiàn)在我知道了設(shè)置了記錄源的窗體或者子窗體可以。
還有其他的嗎?
4#
發(fā)表于 2015-5-23 11:43:05 | 只看該作者
如圖所示,DAO是優(yōu)先于ADO的。
如果使用New關(guān)鍵字就會(huì)出錯(cuò)(DAO沒(méi)有New關(guān)鍵字的,ADO才有)。
Sub test()
Dim rst As New Recordset
End Sub
事實(shí)上,Access會(huì)優(yōu)先調(diào)用DAO庫(kù),因此即便不顯式引用,給出的屬性、方法也是DAO的。例如,假設(shè)你想打開一個(gè)記錄集——使用ADO的Open方法時(shí),輸入一個(gè)O之后,會(huì)出現(xiàn)如下情況:

這意味著它沒(méi)有Open的方法,只有OpenRecordset的方法,也就是說(shuō),這是一個(gè)DAO而不是ADO。
但是個(gè)人建議,還是顯式定義吧,特別是同時(shí)引用了ADO和DAO庫(kù)時(shí),很容易混淆它們之間的方法的。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x
5#
 樓主| 發(fā)表于 2015-5-23 11:58:09 | 只看該作者
roych 發(fā)表于 2015-5-23 11:43
如圖所示,DAO是優(yōu)先于ADO的。
如果使用New關(guān)鍵字就會(huì)出錯(cuò)(DAO沒(méi)有New關(guān)鍵字的,ADO才有)。
Sub test() ...

老師,那意思是我這個(gè)例子雖然沒(méi)有提前引用DAO,但是在使用Recordset.RecordCount屬性的時(shí)候Access自動(dòng)引用了DAO嗎?

如果Access有自動(dòng)引用DAO這樣的特性,是不是意味著以后可以不用在引用那里選"Microsoft DAO 3.6 Object Library"呢?
6#
發(fā)表于 2015-5-23 14:18:48 | 只看該作者
三個(gè)太陽(yáng) 發(fā)表于 2015-5-23 11:58
老師,那意思是我這個(gè)例子雖然沒(méi)有提前引用DAO,但是在使用Recordset.RecordCount屬性的時(shí)候Access自動(dòng)引 ...

我想,你可能還沒(méi)明白我的意思。
你打開附件,先打開窗體運(yùn)行一次。再按下Alt+F11,進(jìn)入VBE里,打開工具\(yùn)引用,刪掉這個(gè)庫(kù):
Microsoft Office 14.0 Access database engine Object Library
看看還能不能運(yùn)行。

上述的庫(kù),其實(shí)就是Office 2007版本的DAO庫(kù)。DAO 3.6支持的是2003版本以前的。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x
7#
 樓主| 發(fā)表于 2015-5-23 16:30:35 | 只看該作者
本帖最后由 三個(gè)太陽(yáng) 于 2015-5-23 16:32 編輯
roych 發(fā)表于 2015-5-23 14:18
我想,你可能還沒(méi)明白我的意思。
你打開附件,先打開窗體運(yùn)行一次。再按下Alt+F11,進(jìn)入VBE里,打開工具 ...

不能運(yùn)行了!
老師:
1、Microsoft Office 14.0 Access database engine Object Library這個(gè)庫(kù)是它自動(dòng)引用的吧?
我記得我沒(méi)有手動(dòng)去引用!要是它自動(dòng)引用這樣就很省事了。
2、隨著2003版office的淘汰,DAO 3.6 是不是以后可以不用手動(dòng)引用了呢?
反正現(xiàn)在高版本的office會(huì)自動(dòng)引用Microsoft Office 14.0 Access database engine Object Library,
我的是2013版的,現(xiàn)在已經(jīng)是Microsoft Office 15.0 Access database engine Object Library的了。

8#
發(fā)表于 2015-5-23 16:53:16 | 只看該作者
三個(gè)太陽(yáng) 發(fā)表于 2015-5-23 16:30
不能運(yùn)行了!
老師:
1、Microsoft Office 14.0 Access database engine Object Library這個(gè)庫(kù)是它自動(dòng) ...

1、這個(gè)的確是自動(dòng)引用的,正如2003版本的DAO也是自動(dòng)引用的一樣!恍拍憧梢杂肁ccess 2003新建一個(gè)文件試試。
2、如果格式是2003的(即mdb文件),建議還是留意下有沒(méi)有引用DAO 3.6庫(kù)(雖然一般情況下都引用了)。格式是2007版本的也許不用檢查這一點(diǎn)。——暫時(shí)我沒(méi)試過(guò)。
最后一點(diǎn),大多數(shù)的庫(kù)是需要的時(shí)候再引用就好了。但是不建議把默認(rèn)引用的庫(kù)刪掉。
9#
 樓主| 發(fā)表于 2015-5-23 17:28:23 | 只看該作者
roych 發(fā)表于 2015-5-23 16:53
1、這個(gè)的確是自動(dòng)引用的,正如2003版本的DAO也是自動(dòng)引用的一樣!恍拍憧梢杂肁ccess 2003新建一個(gè) ...

老師,順便再問(wèn)一個(gè)問(wèn)題吧:
老師認(rèn)為DAO和ADO在access中應(yīng)用方面最大的區(qū)別體現(xiàn)在哪些點(diǎn)上面呢?
目前我只知道DAO可以生成實(shí)實(shí)在在的查詢等對(duì)象,ADO好像只能對(duì)數(shù)據(jù)庫(kù)中已存在的表,查詢等對(duì)象
的內(nèi)容進(jìn)行一些添加,刪除等這些動(dòng)作操作!
10#
發(fā)表于 2015-5-25 14:28:22 | 只看該作者
三個(gè)太陽(yáng) 發(fā)表于 2015-5-23 17:28
老師,順便再問(wèn)一個(gè)問(wèn)題吧:
老師認(rèn)為DAO和ADO在access中應(yīng)用方面最大的區(qū)別體現(xiàn)在哪些點(diǎn)上面呢?
目前 ...

ADO其實(shí)也可以生成表、刪除表、修改字段的,用Connection對(duì)象執(zhí)行SQL語(yǔ)句即可(Create  Table、Drop Table、Alter Table Add/Drop Column:新增或刪除字段)。
只是實(shí)際操作上我們很少用罷了,畢竟對(duì)字段進(jìn)行增刪改操作的情況是極少數(shù)的,而生成表或刪除表操作,Access里的查詢或者DeleteObject操作就可以完成,何必非要去折騰那么復(fù)雜的SQL代碼呢?
此外,DAO和ADO孰優(yōu)孰劣的爭(zhēng)論一直沒(méi)停止過(guò),我也說(shuō)不上什么。
只是覺(jué)得DAO的對(duì)象較多,因此部分操作ADO可能無(wú)法完成,例如:如果需要指定工作組文件打開mdb文件。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

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

GMT+8, 2025-7-13 08:03 , Processed in 0.181761 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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