【问题标题】:Is there a way to export a filtered form to Excel in MS Access?有没有办法在 MS Access 中将过滤后的表单导出到 Excel?
【发布时间】:2019-04-18 21:53:56
【问题描述】:

我在访问的导航表单中有一个连续表单。我已将表单设置为允许在“数据”选项卡下的属性表设置中“输入数据”。使用此设置,表单将加载到新的数据输入记录。问题在于“允许数据输入”设置为是,当我尝试导出到 Excel 时,它总是导出一个带有空单元格的工作表,它只显示搜索条件的字段但没有数据。

我将“允许数据输入”设置为“否”,当我这样做时,导出到 Excel 按钮起作用并将数据导出到 Excel 工作表。

ExportWithFormatting
对象类型:表单
输出格式:Excel 工作簿 xlsx
输出文件:空白
自动启动:是
模板文件:
编码:输出
质量:打印

我希望“导出到 Excel”按钮能够根据表单中的搜索条件将数据导出到 Excel。

【问题讨论】:

  • 你可以用VBA把表单的RecordSourceFilter属性组合起来,变成新的RecordSource,重新查询你的表单,导出它,然后恢复原来的RecordSource和@ 987654325@。可能有一种更简单的方法,特别是如果您愿意放弃格式化并只导出数据。
  • 一个简单的报告会很好地导出。
  • @June7 它必须能够导出到 Excel 工作表....
  • @SunKnight0,我是 vba 的新手,我该怎么做?
  • 可以使用 VBA OutputTo 方法或右键菜单或功能区 ExternalData/Export 向导将报表导出到 Excel。一个简单的报告可以看起来像表格或查询导出一样漂亮。使用分组和/或子报表的复杂报表效果不佳。

标签: ms-access vba


【解决方案1】:

不清楚您为什么使用 data enter = yes,因为这意味着表单只会显示您正在输入的新记录。所以,这个想法很可能是个坏主意。

但是,假设表单在过滤后显示您想要的内容?

那么这样的事情应该可以工作。

在表单上放置一个按钮(在标题中说)。

Private Sub Command47_Click()

  Dim strSQL     As String

  strSQL = Me.RecordSource

  strSQL = strSQL & " WHERE " & Me.Filter

  With CurrentDb.QueryDefs("qryExport")
     .SQL = strSQL
  End With

  ' now export the query  with critera to excel

  Dim strOutFile    As String

  strOutFile = "c:\ExcelData\Test.xlsx"

  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, _
        "qryExport", strOutFile, True
end Sub

上面使用的查询假设是对表的查询,并且几乎可以是任何合法的 sql 查询 - 因为我们的代码每次都会覆盖查询和 sql,然后我们导出该查询。

【讨论】:

  • 您好,我将其保留为“是”的原因是,当打开 1000 多条记录的连续形式时,它没有任何内容,直到输入搜索条件,然后您调用所需的记录
  • 好的,至少您有选择的理由(这是一个很好的答案)。如果您从不使用此表格或数据输入?如果表格仅用于选择记录?您可以使用带有 id = 0 的 where 子句的 openform。无论如何,这个问题对您来说似乎没问题。和上面无论如何,上面应该创建一个可导出到 Excel 的工作 sql 语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
相关资源
最近更新 更多