Windows 在我的Access数据库中存储Excel模板 我想要的是:

Windows 在我的Access数据库中存储Excel模板 我想要的是:,windows,ms-access,vba,ms-access-2013,Windows,Ms Access,Vba,Ms Access 2013,我正在与MS Access数据库合作,为安大略省专业工程大学认证委员会编写一份报告。PEO有MS Excel中的模板,我必须使用它们的精确格式 我想将Access DB中的数据输出到Excel工作表(非常简单),但我想在生成新文件时复制它们的格式。(我不想保留一个空模板文件,每次都复制它) 因此,本质上我希望以某种方式将模板存储在代码中。(欢迎提出其他建议!) 我所尝试的: 你们中的一些人会读到这篇文章,认为我是个白痴。但我尝试的是通过从MS剪贴板上的excel获取数据,并将数据对象存储为(我希

我正在与MS Access数据库合作,为安大略省专业工程大学认证委员会编写一份报告。PEO有MS Excel中的模板,我必须使用它们的精确格式

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

因此,本质上我希望以某种方式将模板存储在代码中。(欢迎提出其他建议!)

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

但我无法保留原始MS Excel模板的格式或单元格着色


有什么建议吗?…

您需要做的是首先将所有数据导出到一个空模板的新工作表中,然后将所有数据链接到模板上的正确位置,然后删除包含所有数据的工作表,将数据保留在模板上

据我所知,没有比这更快的方法,但这里有一个例子:


如果模板设置良好,这将是一项相当艰巨的工作,但也是可行的。

您可以通过创建一个包含
附件的表来将Excel模板存储在数据库中

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

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

选项比较数据库
选项显式
公共子存储报告TemplateToFile()
Dim cdb作为DAO.Database,rowRst作为DAO.Recordset,attachRst作为DAO.Recordset2,attachField作为DAO.Field2
设置cdb=CurrentDb
Set rowRst=cdb.OpenRecordset(“从ReportTemplates中选择TemplateFile,其中ID=1”)
设置attachRst=rowRst.Fields(“TemplateFile”).Value
设置attachField=attachRst.Fields(“文件数据”)
attachField.SaveToFile“C:\Users\Gord\Desktop\”和attachRst.Fields(“FileName”).Value
设置attachField=Nothing
附件。关闭
Set attachRst=无
罗尔斯,关门
设置rowRst=Nothing
设置cdb=无
端接头

谢谢你的回答,但正如我提到的;我想以某种方式避免将Excel模板放在一起。我希望以编程方式复制模板格式,这样,如果我移动Access DB,就不必将其与外部Excel文件绑定。(这也将避免复制到空模板的新页面,然后链接到其他页面的繁琐工作)为什么不将模板存储在Access DB中?完全通过代码复制模板似乎需要做很多工作,但没有明显的好处。@TimWilliams是的,我不知道你能做到这一点。我认为这是最好的答案(来自Gord T)。谢谢你的建议!您使用的是什么版本的Access?这看起来棒极了!那么在表中存储附件意味着DB有一个硬拷贝?因此,我不需要将.xls文件保存在Access DB?@user3163380中。是的,附件文件作为对象保存在数据库中。谢谢。这是我问题的一个很好的答案!谢谢你的截图,他们帮了我很大的忙。哥德,你让我的生活轻松多了!非常感谢。