将受密码保护的Excel连接到Access

时间:2016-07-27 12:15:15

标签: excel ms-access access-vba ms-access-2010 access

我想将受密码保护的Excel文档链接到Access - 由于它受密码保护,因此无效。

有没有人有替代方法来做到这一点?

遗憾的是,它必须受密码保护,无法移动到安全文件夹,因此无法确定如何操作。

有什么建议吗?

1 个答案:

答案 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/