【问题标题】:How to bind a form to an SQL statement in microsoft access如何将表单绑定到 Microsoft Access 中的 SQL 语句
【发布时间】: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 的数据

标签: sql vba ms-access binding filtering


【解决方案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 语句的方法,但是如果你能看看它会有错误,那就太好了。
      猜你喜欢
      • 2017-09-02
      • 1970-01-01
      • 2019-12-12
      • 2021-04-16
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多