我正在使用DAO(被要求不使用ADO.NET)来更新Access数据库。我目前到目前为止,VB2008告诉我变量“daoengine”在使用之前没有声明。我在下面的代码中做错了什么?
Function update_db()
Dim daoengine As DAO.DBEngine
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
dbs = daoengine.OpenDatabase("Project.mdb")
rst = dbs.OpenRecordset("Log", dao.RecordsetTypeEnum.dbOpenDynaset)
End Function
答案 0 :(得分:1)
你应该
Dim daoengine As New DAO.DBEngine
而不是
Dim daoengine As DAO.DBEngine
答案 1 :(得分:0)
当你说
时Dim daoengine As DAO.DBEngine
你只是创建一个变量daoengine
,但它实际上并没有指向任何东西。之后你需要这样做:
Set daoengine = New DAO.DBEngine
您也可以输入Dim daoengine As New DAO.DBEngine
,但最好在上面的两行中输入。如果你将New
放在Dim
行中,你就可以创建所谓的“自动实例化”变量,在你认为它被处理掉后,它可以再次神奇地复活。
有关详细信息,请参阅此处的不使用自动实例化对象变量:Declaring Variables (in VBA)