Ms access workbooks.close对我不起作用
希望有人能帮我解决以下问题 我想确保特定工作簿在更新之前已关闭。 我本来打算从这个开始Ms access workbooks.close对我不起作用,ms-access,vba,Ms Access,Vba,希望有人能帮我解决以下问题 我想确保特定工作簿在更新之前已关闭。 我本来打算从这个开始 Private子命令1_Click() 工作簿(“workbookname.XLSM”)。关闭Savechanges=False 末端接头 我也试过了 工作簿(“workbookname.Xlsm”)。关闭 两个我都单独运行,都给我错误代码9 特定文件将始终位于用户的桌面上 我想这可能与我的参考资料有关,所以我检查并打开了以下参考资料。(有些是因为其他具体原因) Visual Basic For Appli
Private子命令1_Click()
工作簿(“workbookname.XLSM”)。关闭Savechanges=False
末端接头
我也试过了
工作簿(“workbookname.Xlsm”)。关闭
两个我都单独运行,都给我错误代码9
特定文件将始终位于用户的桌面上
我想这可能与我的参考资料有关,所以我检查并打开了以下参考资料。(有些是因为其他具体原因)
- Visual Basic For Applications
- Microsoft Access 16.0对象库
- OLE自动化
- Microsoft DAO 3.6对象库
- Microsoft Excel 16.0
- 对象库Microsoft脚本运行时
真希望有人能帮我。我已经浏览了相当多的论坛,但没有找到相同的问题或解决方案
w、 k.r.Drac.您必须检查它是否打开,并正确引用打开的对象。下面的函数(我在某处找到)返回一个关于文件的真/假值:
您可以这样使用它:
Private Sub Command1_Click()
Dim xls As Object
If IsWorkBookOpen("C:/Users/Desktop/Workbook.xlsm") = True Then
Set xls = GetObject("C:/Users/Desktop/Workbook.xlsm")
xls.Close True
Else
'do stuff if closed
End If
End Sub
功能:
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function
你好,艾琳,谢谢你为我调查这件事并提供一个可能的解决方案。我刚刚试过这个,你的代码正是它应该为我做的。但是,当我得到一个真值时,它在尝试执行我的行时仍然会给出错误。请尝试使用GetObject函数引用。还是运行时错误9?另一方面,这让我可以选择给用户一个警告,让用户自己关闭它:)我想我现在会这样做。谢谢你好,艾琳,这确实结束了一些事情。现在只有Excel仍处于打开状态,但其中没有工作簿。没有错误是的,它只会关闭引用的文件,而不会关闭excel应用程序,以防用户打开其他文件。如果此代码在Access中运行,则无法执行工作簿(“foo”).bar
。您必须使用Excel应用程序对象,例如,objExcel.Workboks(…)
。