如何将表单绑定到 Microsoft Access 中的 SQL 语句
Posted
技术标签:
【中文标题】如何将表单绑定到 Microsoft Access 中的 SQL 语句【英文标题】:How to bind a form to an SQL statement in microsoft access 【发布时间】:2014-07-04 23:18:20 【问题描述】:**编辑
大家好,我正在尝试在我的 vba 中包含一条 SQL 语句,以便我可以轻松地对数据进行排序和过滤。所以我找到了将 SQL 包含到我的 VBA 中的方法,但我收到一条错误消息,提示“RunSQL 操作需要 SQL 语句”,但显然 SQL 语句在 strSQL 变量中。
Private Sub buttonNot_Click()
Dim strSQL As String
strSQL = "SELECT Table1.[FirstNam], Table1.[LastNam]" & _
"FROM Table1 " & _
"WHERE ((([FirstNam]) <> 'Jamie') AND (([LastNam]) <> 'Cartman'));"
DoCmd.RunSQL strSQL
Me.Filter = ""
Me.Filter = "FirstNam<>'Jamie' AND LastNam<>'Cartman'"
End Sub
【问题讨论】:
有人可以看看代码并告诉我它有什么问题吗? 点击buttonNot
会发生什么?
假设运行 sql 语句,然后 Me.Filter 假设过滤数据,因此 sql 语句基本上遍历两列中的所有数据,然后 Me.Filter = "FirstNam'Jamie' AND Lastnam'Cartman'" 将过滤不等于 jamie 或 cartman 的数据
【参考方案1】:
Private Sub buttonNot_Click()
Dim strSQL As String
strSQL = "SELECT Table1.[FirstNam], Table1.[LastNam]" & _
"FROM Table1 " & _
"WHERE ((([FirstNam]) <> 'Jamie') AND (([LastNam]) <> 'Cartman'));"
Me.RecordSource = strSQL
'DoCmd.RunSQL strSQL
'Me.Filter = ""
'Me.Filter = "FirstNam<>'Jamie' AND LastNam<>'Cartman'"
End Sub
【讨论】:
【参考方案2】:您不能从 DoCmd.RunSQL 查询中运行 SELECT 查询,该查询只能用于操作或数据定义查询(INSERT INTO、UPDATE、CREATE 等)。
Microsoft Dev Center Docs on DoCmd.RunSQL(我知道,我附上了一个链接,真丢人):o
我真的很喜欢@ClassyBear 的回答。该行代码相当于在设计视图和数据下转到表单的属性表,更改记录源属性。在那里,您可以选择一个表/查询或单击 ... 并在查询设计器中创建一个。
【讨论】:
【参考方案3】:me.recordsource = SQL 字符串
确保在附加查询字符串后打开过滤器。
【讨论】:
我修改了我的帖子,我想我找到了一种包含 SQL 语句的方法,但是如果你能看看它会有错误,那就太好了。以上是关于如何将表单绑定到 Microsoft Access 中的 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Microsoft Access 表单中的单个记录打印到报表中
如何使用 Microsoft Access 导航表单过滤加载
在 Microsoft Access 数据表上自定义自动完成功能
使用 Microsoft Access 中的两个表单将参数从一个组合框传递到另一个组合框