如果不引用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
确实,如此,谢谢楼上二位