在与DAO一起使用之前未声明的变量

时间:2012-01-11 00:22:19

标签: vb.net dao

我正在使用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

2 个答案:

答案 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)