如何在 VBA 中将 MS Access 筛选表另存为查询

发布于 2024-11-07 01:46:33 字数 186 浏览 1 评论 0原文

我需要能够将 Microsoft Access(2010) 中筛选表的结果保存为查询。 Access 中的报表只有基于查询时才是动态的。如果我基于表格本身生成报告,则它不会保存任何搜索词/过滤结果。在 Access 宏生成器中,DoCmd.save 仅保存当前表,我需要能够在 VBA 中执行“另存为”操作,以便将筛选后的表另存为查询。

谢谢

I need to be able to save the results of a filtered table in Microsoft Access(2010) as a query. Reports in Access are only dynamic if they are based off of a query. If I based the reports off of a the table itself, it wouldn't save any of the search terms/filter results. In the Access macro builder, the DoCmd.save only saves the current table, I need to be able to do a "save as" in VBA so I can save the filtered table as a query.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

表情可笑 2024-11-14 01:46:33

您需要根据表单的 Filter 和 OrderBy 设置构建 SQL 语句。

Dim sSQL As String

sSQL = "Select ... From MyTable"

If Len(Me.Filter) > 0 Then
    sSQL = sSQL & " Where " & Me.Filter
End If

If Len(Me.OrderBy) > 0 Then
    sSQL = sSQL & " Order By " & Me.OrderBy
End If

Call DBEngine.Workspaces(0).Databases(0).CreateQueryDef("MyQueryName", sSQL)

You would need to build the SQL statement based on the Filter and OrderBy settings of the form.

Dim sSQL As String

sSQL = "Select ... From MyTable"

If Len(Me.Filter) > 0 Then
    sSQL = sSQL & " Where " & Me.Filter
End If

If Len(Me.OrderBy) > 0 Then
    sSQL = sSQL & " Order By " & Me.OrderBy
End If

Call DBEngine.Workspaces(0).Databases(0).CreateQueryDef("MyQueryName", sSQL)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文