打开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
- VBA过程返回结果只有一个特定的date
- 如何不透明像表一样的交叉表?
- 迟绑定表单模块中的UDT作为parameter passing
- 运行时错误“3052”。 文件共享locking计数超出。 增加MaxLocksPerFileregistry项
- DoCmd.TransferSpreadsheet到现有的文件不工作
- 访问VBA复制从logging集范围对象错误-2147417856
- 如何使用Microsoft XMLHTTP使用VBA获取文件扩展名
- 如何使用Excel VBA在运行系统中打开MS Access?
- 在Application.FileDialog中selectexcel文件后,检查是否存在特定的工作表