2012-01-11 1 views
0

J'utilise DAO (on m'a demandé de ne pas utiliser ADO.NET) pour mettre à jour une base de données Access. Je suis actuellement jusqu'à présent, cependant, VB2008 me dit que la variable "daoengine" n'est pas déclarée avant d'être utilisée. Qu'est-ce que je fais de mal dans le code suivant?Variable non déclarée avant d'être utilisée avec 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

Utilisez-vous OAC à partir de VB.NET ou MS-Access? –

+0

Je l'utilise dans VB.NET pour accéder à une base de données Ms-Access. – bear

Répondre

0

Quand vous dites

Dim daoengine As DAO.DBEngine 

vous êtes juste créer une variable, daoengine, mais il n » t pointer vers quoi que ce soit. Vous devez le faire plus tard:

Set daoengine = New DAO.DBEngine 

Vous pouvez également taper Dim daoengine As New DAO.DBEngine, mais il est préférable de le faire dans les deux lignes ci-dessus. Si vous mettez le New dans la ligne Dim, vous créez ce que l'on appelle une variable "auto-instanciation" qui peut revenir à la vie par magie après avoir pensé que vous l'aviez éliminé.

Pour plus de détails, voir la Ne pas utiliser des variables d'objet Auto-instanciation ici: Declaring Variables (in VBA)

1

Vous devriez avoir

Dim daoengine As New DAO.DBEngine 

au lieu de

Dim daoengine As DAO.DBEngine 
+0

Comment puis-je procéder à la mise à jour du jeu d'enregistrements à l'aide des données de Field.Text? – bear

Questions connexes