Ms access 如何在按下按钮时运行查询并将结果导出到Excel文件

Ms access 如何在按下按钮时运行查询并将结果导出到Excel文件,ms-access,Ms Access,我有一个表单,它有一个组合框和一个按钮。当在其中选择一个值时,我必须检索组合框中选择的值,并基于该值运行查询。该查询生成一个包含5列的表。我希望将此表导出到Excel工作表。请帮帮我。好的,很简单。您必须使用VBA 在按钮的click事件中,您只需执行DoCmd.TransferSpreadsheet命令。有几个选项,您可以直接查找 对于表名,请使用包含对组合框的引用的查询。即=[表格]![表单名称]![ControlName]好的,很简单。您必须使用VBA 在按钮的click事件中,您只需执行

我有一个表单,它有一个组合框和一个按钮。当在其中选择一个值时,我必须检索组合框中选择的值,并基于该值运行查询。该查询生成一个包含5列的表。我希望将此表导出到Excel工作表。请帮帮我。

好的,很简单。您必须使用VBA

在按钮的click事件中,您只需执行DoCmd.TransferSpreadsheet命令。有几个选项,您可以直接查找


对于表名,请使用包含对组合框的引用的查询。即
=[表格]![表单名称]![ControlName]

好的,很简单。您必须使用VBA

在按钮的click事件中,您只需执行DoCmd.TransferSpreadsheet命令。有几个选项,您可以直接查找


对于表名,请使用包含对组合框的引用的查询。即
=[表格]![表单名称]![ControlName]

正如Tom所说,您可以使用Docmd.TransferSpreadsheet命令。首先,需要将查询设置为引用组合框的参数化查询。我想这是WHERE条款的一部分。因此,您的查询可能如下所示:

 SELECT * FROM yourTable WHERE values = [Forms]![yourForm]![yourComboBox];
假设您刚才编写的查询名为“qryExport”,您将在点击事件中将此代码放入表单上的按钮中:

 DoCmd.TransferSpreadsheet acExport, , "qryExport", "C:\yourPath\exportedReport.xlsm", True
然后,您应该能够按照指定的路径打开excel文件,并确保一切正常


希望这有帮助。

正如Tom所说,您可以使用Docmd.TransferSpreadsheet命令。首先,需要将查询设置为引用组合框的参数化查询。我想这是WHERE条款的一部分。因此,您的查询可能如下所示:

 SELECT * FROM yourTable WHERE values = [Forms]![yourForm]![yourComboBox];
假设您刚才编写的查询名为“qryExport”,您将在点击事件中将此代码放入表单上的按钮中:

 DoCmd.TransferSpreadsheet acExport, , "qryExport", "C:\yourPath\exportedReport.xlsm", True
然后,您应该能够按照指定的路径打开excel文件,并确保一切正常


希望这有帮助。

谢谢。按照您所说的方式更改此查询,将其写入何处。我是通过在字符串中创建一个查询并将其提供给VBA中的OpenRecordSet来实现的。请提供帮助。只需创建一个查询,转到SQL视图,然后在中键入该查询。将查询保存为您在表单上引用的任何名称,您就可以开始了。亲爱的Scotch…谢谢。成功了。是否有一种方法可以格式化Excel的内容,使其看起来更好。我想创建一个没有名字的Excel。我想让用户选择它的位置和名称。我怎么能做到呢?我不知道如何在Excel中自动设置好格式,我也遇到过同样的问题。有一种方法可以使用现有的格式化Excel工作表,但我不太确定。如果您希望用户能够从access对其命名,请创建一个文本框控件“txtExportName”,在vb代码中,我认为您可以执行docmd.TransferSpreadsheet acExport、“qryExport”、“C:\yourPath\”和[Forms]![你的表格]![txtExportName]&“.xlsm”,谢谢。按照您所说的方式更改此查询,将其写入何处。我是通过在字符串中创建一个查询并将其提供给VBA中的OpenRecordSet来实现的。请提供帮助。只需创建一个查询,转到SQL视图,然后在中键入该查询。将查询保存为您在表单上引用的任何名称,您就可以开始了。亲爱的Scotch…谢谢。成功了。是否有一种方法可以格式化Excel的内容,使其看起来更好。我想创建一个没有名字的Excel。我想让用户选择它的位置和名称。我怎么能做到呢?我不知道如何在Excel中自动设置好格式,我也遇到过同样的问题。有一种方法可以使用现有的格式化Excel工作表,但我不太确定。如果您希望用户能够从access对其命名,请创建一个文本框控件“txtExportName”,在vb代码中,我认为您可以执行docmd.TransferSpreadsheet acExport、“qryExport”、“C:\yourPath\”和[Forms]![你的表格]![txtExportName]&“.xlsm”,正确