打开Access时出现“运行时错误91”

所以我的代码是closures它创build一个数据库的副本,复制一个新的名称,然后重新打开原来的:

Global appAccess As Object Sub Auto_Open() Dim OtherDB As Object sOther = "E:\6thFormExamples\" sName = "ActualDB.accdb" sFullPath = sOther & sName Set OtherDB = GetObject(sFullPath) OtherDB.Application.Quit sNewName = Format(Date, "d-mmmm-yyyy") Dim fso As Object Set fso = VBA.CreateObject("Scripting.FileSystemObject") Call fso.CopyFile(sFullPath, sOther & "Backup" & sNewName & ".accdb", True) 'Reopen DB Set accessApp = CreateObject("Access.Application") accessApp.Visible = True appAccess.OpenCurrentDatabase ("E:\6thFormExamples\ActualDB.accdb") 'Application.Quit End Sub 

现在我知道文件path是正确的,因为它发现它第一次closures它。 我收到的错误是:

运行时错误91,对象variables或未设置块variables。

但是在closures和复制数据库过程中,我无法确定哪个variables正常工作。 运行办公室和Excel 2010,如果它有所作为

错误显示在行上

 appAccess.OpenCurrentDatabase.... 

经典的意外/错误,你倒了你的variablesappAccess的名称和Set accessApp

顺便说一句,如果你已经有一个Access的实例已经打开,或为了避免有多个实例,你应该使用:

  'Reopen DB On Error Resume Next Set appAccess = GetObject(, "Access.Application") If Err.Number <> 0 Then Set appAccess = CreateObject("Access.Application") End If On Error GoTo 0 On Error Resume Next appAccess.Visible = True appAccess.OpenCurrentDatabase ("E:\6thFormExamples\ActualDB.accdb") 'Application.Quit