我有大约30个.accdb
文件,所有文件都包含一个相同名称的报告。我想自动保存报告为PDF以便后续打印。只需要保存报告为PDF,不需要进行查询或修改。
我可以成功打开数据库,但是不确定如何完成其余部分。
import win32com.client
a = win32com.client.Dispatch("Access.Application")
a.visible = 1
filename = r'C:\bla\Exam_1\PrintTest\db.accdb'
db = a.OpenCurrentDatabase(filename)
report_name = 'My_Report'
a.Quit()
顺带一提,我是一名教师,这将帮助我评分并减轻压力大的学生在考试结束时打印文件的负担。使用的操作系统是Windows 10。
我可以尝试使用任何其他脚本语言(例如powershell等),以便更轻松地自动化此任务。
acFormatPDF
常量是'PDF Format (*.pdf)'
,例如。 - undefinedApplication.Reports
集合,然后打印其中每个报表的Name
属性。查询在数据库对象的QueryDefs集合中,但要注意其中包含了不可见的临时查询。VBA编辑器只是一个非常简单的方式来熟悉这些对象和集合,因为它具有智能感知功能、本地窗口显示对象属性及其值,并且可以快速在当前打开的数据库和应用程序上进行测试。 - undefinedDoCmd.OutputTo
根本不使用打印机,而是使用内置的保存为PDF功能。据我所知,在Access中无法指定打印机将使用的文件位置。您的打印机可能提供在打印之前指定文件路径的选项,如果是这样,您可以使用Python进行修改,但默认的Microsoft打印机没有此选项。 - undefined