我正在使用MS Access数据库为安大略省专业工程大学认证委员会制作报告。 PEO在MS Excel中有他们的模板,我必须使用他们的确切格式。
我想将数据从Access数据库输出到Excel表格(很简单),但我想在生成新文件时复制它们的格式。 (我不想保留一个空的模板文件并每次都复制它。)
所以基本上我希望以某种方式将模板存储在代码中。 (欢迎提出其他建议!)
你们当中有些人会读到这个并认为我是个白痴。但我尝试的是通过API Code从MS剪贴板上的excel获取数据,并将DataObject存储为(我希望)某种字符串。
但我无法保留原始MS Excel模板的格式或单元格着色。
有什么建议吗?...
答案 0 :(得分:3)
您可以通过创建包含Attachment
字段的表
创建记录并将Excel模板另存为该记录的附件
然后使用这样的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
答案 1 :(得分:1)
您要做的是首先将所有数据导出到空白模板的新工作表中,然后将所有数据链接到模板上的正确位置,然后删除包含所有数据的工作表,同时保留模板上的数据。
据我所知,没有更快的方法可以做到这一点,但这是一个例子:http://www.rogersaccesslibrary.com/forum/topic350.html
如果模板安装得好,这将是一项相当重要的工作,但是可行。