Office中国论坛/Access中国论坛

标题: 求助,关于OFFICE2010中DAO的引用 [打印本页]

作者: yedaoan    时间: 2010-9-25 10:03
标题: 求助,关于OFFICE2010中DAO的引用
新建一个2010版的ACCESS ,会自动引用这几个,如下图:


[attach]43579[/attach]


好象ACCESS2010中的Microsoft Office 14.0 Access database Engine Object Library 的这个引用已经DAO,如果继续引用DAO3.6,如出现,如下图错误:
[attach]43580[/attach]

如果不引用DAO3.6 ,如下代码运行会出错,代码如下:
Private Sub Command3_Click()
On Error GoTo Err_Command3_Click
   Dim dbs As Database
   Dim tdf As TableDef
   Dim strNewName As String
   Dim strName As String
   Set dbs = CurrentDb
   For Each tdf In dbs.TableDefs
        strName = tdf.Name
        If UCase(Left(strName, 3)) = "DBO" Then
        strNewName = Right(strName, Len(strName) - 4)
        tdf.Name = strNewName
        tdf.RefreshLink
'        Me.lbTable.Caption = tdf.Name
'        DoEvents
        End If
    Next
    MsgBox "去除DBO成功", 0 + 64
Exit_Command3_Click:
    Exit Sub
Err_Command3_Click:
    MsgBox Err.Description
    Resume Exit_Command3_Click
   
End Sub

出错提示如下图:
[attach]43581[/attach]

作者: tmtony    时间: 2010-9-25 10:49
这个还真没有试过, 不过,应该2010不会默认带有DAO的引用的.
你这样试试,新建一个数据库,什么都不加,再引用dao,看看是否可以
如果不可以,在代码中加入dim db as dao.database,看看是否可以,如果可以,则默认有了DAO引用了
作者: tmtony    时间: 2010-9-25 10:54
在2010,
Microsoft Office 14.0 Access Database Engine object 代替了DAO 3.6
正常情况下,DAO的代码可继续使用.
但建议改为ADO会更好
作者: yedaoan    时间: 2010-9-25 10:57
改成dim db as dao.database,确实可以了,看样子是默认有DAO了,谢放宇虹
作者: tmtony    时间: 2010-9-25 11:19
因为你的ADO引用在DAO之前,而ADO也有Database对象, 所以才会提示了错,其它对象也要显式定义才行
作者: chaosheng    时间: 2010-9-25 11:53
有趣的是在 2010 中,  currentproject.connection 是 ADO 的, 而 form 的 recordset 是 DAO 的.
作者: yedaoan    时间: 2010-9-27 16:05
确实,如此,谢谢楼上二位




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3