2012-01-11 43 views
0

我正在使用DAO(被要求不使用ADO.NET)来更新Access数据库。然而,我目前为止,VB2008告诉我变量“daoengine”在使用前没有声明。我在下面的代码中做错了什么?在与DAO一起使用之前未声明变量

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

是否使用DAO从内部VB.NET或MS-访问? – 2012-01-11 00:33:03

+0

我在VB.NET中使用它来访问Ms-Access数据库。 – bear 2012-01-11 00:33:24

回答

0

当你说

Dim daoengine As DAO.DBEngine 

你只是创建变量,daoengine,但它不”实际上指向任何东西。你需要事后做:

Set daoengine = New DAO.DBEngine 

也可以键入Dim daoengine As New DAO.DBEngine,但它更好地做到这一点在上面的两行。如果你把New放在Dim这一行中,你可以创建一个叫做“自动实例化”的变量,在你认为已经处理完毕后,它可以神奇地复活。

欲了解更多详情,请参阅该不要使用自动实例化对象变量这里:Declaring Variables (in VBA)

1

你应该有

Dim daoengine As New DAO.DBEngine 

,而不是

Dim daoengine As DAO.DBEngine 
+0

然后,我将如何使用Field.Text中的数据来更新记录集? – bear 2012-01-11 00:37:45