从Access访问Excel模板导出查询

时间:2015-11-05 13:06:52

标签: excel-vba templates ms-access export-to-excel vba

我有一个在一周的指定日期运行的查询。在那一天,如果有任何记录被标记"需要订购"然后使用命令按钮打开一个orderform窗口。命令按钮应将查询数据导出到excel模板(已经按照它应该看的方式格式化),然后附加到要发送的电子邮件模板。我可以查询附加到电子邮件,我似乎无法弄清楚如何使用excel模板而不是每次都创建一个新的Excel工作簿。有关尝试什么的任何建议?

Dim myolapp As Object 
Dim myitem As Object 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "BoxOrder", "C:\Users\Database Design\Desktop\BoxOrder.xlsx", True 

Set myolapp = CreateObject("Outlook.Application") myolapp.Session.Logon 
Set myitem = myolapp.CreateItemFromTemplate("F:\BOX ORDER FOR PC CONNECTION.oft") 
Set myAttachments = myitem.attachments 

myAttachments.Add "C:\Users\Database Design\Desktop\BoxOrder.xlsx"
myitem.Display 'or send 
DoCmd.Close acForm, "OrderForm"

BoxOrder查询:

SELECT '' AS [Quantity Needed], [BoxOrder].[Box Size], [BoxOrder].Comments, 
       [BoxOrder].[Certified/Stamped Boxes], [BoxOrder].[Box Type] 
FROM BoxOrder; 

1 个答案:

答案 0 :(得分:1)

你做不到。 TemplateFile的{​​{1}}参数仅适用于HTML(及类似)导出。

使用DoCmd.OutputToDoCmd.OutputTo后有两种可能性。这一切都可以通过VBA完成:

  • 打开导出的文件和模板文件,复制&将数据从导出粘贴到模板,另存为新文件。
  • 打开导出的文件,使用VBA应用格式 使用Excel宏录制器为您提供一个良好的开端。

这取决于模板的复杂程度,哪一个更好。