首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Access数据库中存储Excel模板

在Access数据库中存储Excel模板
EN

Stack Overflow用户
提问于 2014-07-02 15:01:25
回答 2查看 1.7K关注 0票数 2

我想要的:

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

我希望将数据从Access DB输出到Excel表(非常容易),但在生成新文件时我希望复制它们的格式。(我不希望保留一个空的模板文件并每次复制它)。

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

我试过的是:

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

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

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-02 16:05:37

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

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

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

代码语言:javascript
运行
复制
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
票数 5
EN

Stack Overflow用户

发布于 2014-07-02 15:11:01

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

据我所知,没有更快的方法可以做到这一点,但这里有一个例子:http://www.rogersaccesslibrary.com/forum/topic350.html

这将是一个相当大的工作,但可行的,如果模板是良好的设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24534533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档