我想将受密码保护的Excel文档链接到Access - 由于它受密码保护,因此无效。
有没有人有替代方法来做到这一点?
遗憾的是,它必须受密码保护,无法移动到安全文件夹,因此无法确定如何操作。
有什么建议吗?
答案 0 :(得分:2)
尝试使用隐藏的表单在打开数据库文件时自动打开Excel文件。
将此添加到新模块:
Option Compare Database
Public xl As Object
Function OpenExcelFile()
xl.Workbooks.Open "path to file.xlsx", , , , "password"
End Function
Function CloseExcelFile()
xl.Quit
set xl=nothing
End Function
创建一个空白表单并将HasModule属性设置为true。然后将以下内容添加到表单的代码模块中。
Private Sub Form_Load()
OpenExcelFile
End Sub
Private Sub Form_Close()
CloseExcelFile
End Sub
现在使用OpenForm任务创建一个新宏来打开表单。将窗口模式设置为' Hidden'。使用名称' AutoExec'保存宏。这使得它在db打开时运行。
打开数据库时,宏将运行并打开隐藏的表单。表单加载事件将触发,创建一个打开excel文件的公共Excel.Application对象(如果希望提示用户提供密码,则应该能够从代码中删除密码)。 Excel应用程序将保持打开状态,直到隐藏的表单关闭(关闭数据库时)。此时,表单关闭事件将触发,导致Excel应用程序退出。只要Excel文件处于打开状态,您就应该能够使用链接表和查询。
**如果您想让用户看到它,可以将xl.Visible = true添加到OpenExcelFile函数中。
这个链接是一个类似的想法:https://www.connectionstrings.com/how-to-open-password-protected-excel-workbook/