在我的 Access 数据库中存储 Excel 模板

Phi*_*ins 2 windows ms-access vba ms-access-2013

我想要的是:

我正在使用 MS Access 数据库为安大略专业工程大学认证委员会制作报告。PEO 在 MS Excel 中有他们的模板,我必须使用他们的确切格式。

我想将数据从 Access DB 输出到 Excel 工作表(足够简单),但我想在生成新文件时复制它们的格式。(我不想保留一个空的模板文件并每次都复制它)。

所以基本上我希望以某种方式将模板存储在代码中。(欢迎其他建议!)

我试过的:

你们中的一些人会读到这里并认为我是个白痴。但是我尝试的是通过API 代码从 MS 剪贴板上的 excel 获取数据,并将 DataObject 存储为(我希望)某种字符串。

但我无法保留原始 MS Excel 模板中的格式或单元格阴影。

有什么建议?...

Gor*_*son 5

您可以通过创建包含Attachment字段的表将 Excel 模板存储在数据库中

设计视图.png

创建记录并将 Excel 模板保存为该记录的附件

附件对话框.png

然后在需要时使用这样的 VBA 代码将 Excel 文档的新副本保存到磁盘:

Option Compare Database
Option Explicit

Public Sub SaveReportTemplateToFile()
    Dim cdb As DAO.Database, rowRst As DAO.Recordset, attachRst As DAO.Recordset2, attachField As DAO.Field2
    Set cdb = CurrentDb
    Set rowRst = cdb.OpenRecordset("SELECT TemplateFile FROM ReportTemplates WHERE ID=1")
    Set attachRst = rowRst.Fields("TemplateFile").Value
    Set attachField = attachRst.Fields("FileData")
    attachField.SaveToFile "C:\Users\Gord\Desktop\" & attachRst.Fields("FileName").Value
    Set attachField = Nothing
    attachRst.Close
    Set attachRst = Nothing
    rowRst.Close
    Set rowRst = Nothing
    Set cdb = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)