【问题标题】:How to use a SQL SELECT statement with Access VBA如何在 Access VBA 中使用 SQL SELECT 语句
【发布时间】:2012-06-16 12:54:51
【问题描述】:

我有一个组合框,我想将其值与 SQL WHERE 子句一起使用。如何在 VBA 中根据组合框值运行 SELECT 语句?

【问题讨论】:

    标签: sql ms-access vba


    【解决方案1】:

    如果您想使用绑定的列值,您可以简单地参考组合:

    sSQL = "SELECT * FROM MyTable WHERE ID = " & Me.MyCombo
    

    也可以参考列属性:

    sSQL = "SELECT * FROM MyTable WHERE AText = '" & Me.MyCombo.Column(1) & "'"
    
    Dim rs As DAO.Recordset     
    Set rs = CurrentDB.OpenRecordset(sSQL)
    
    strText = rs!AText
    strText = rs.Fields(1)
    

    在文本框中:

    = DlookUp("AText","MyTable","ID=" & MyCombo)
    

    *已编辑

    【讨论】:

    • 谢谢。那不会只创建一个包含 SQL 语句的字符串吗?
    • 是的。您的问题不包含有关您想对 where 语句做什么的任何信息。
    • 我想实际运行 SQL 语句以返回一个可以传递给文本框的值,例如 Me!textBox = sSQL
    • 在这种情况下,您可能应该使用 DLookUp
    • 你不能运行select语句,你只能得到一个记录集之类的,这意味着你真的需要在任何人提供有效答案之前说出你将要使用select语句做什么.在这种情况下,您需要一个值,但您可能希望遍历记录集以执行进一步的操作。
    【解决方案2】:

    Access 2007 可能会丢失 CurrentDb:请参阅 http://support.microsoft.com/kb/167173,因此如果出现 "Object Invalid or no longer set" 示例,请使用:

    Dim db as Database
    Dim rs As DAO.Recordset
    Set db = CurrentDB
    Set rs = db.OpenRecordset("SELECT * FROM myTable")
    

    【讨论】:

      【解决方案3】:

      这是在 VBA 中使用 SQL SELECT 语句的另一种方法:

       sSQL = "SELECT Variable FROM GroupTable WHERE VariableCode = '" & Me.comboBox & "'" 
       Set rs = CurrentDb.OpenRecordset(sSQL)
       On Error GoTo resultsetError 
       dbValue = rs!Variable
       MsgBox dbValue, vbOKOnly, "RS VALUE"
      resultsetError:
       MsgBox "Error Retrieving value from database",VbOkOnly,"Database Error"
      

      【讨论】:

        猜你喜欢
        • 2018-05-12
        • 2015-02-16
        • 1970-01-01
        • 2015-04-07
        • 2020-06-20
        • 1970-01-01
        • 2016-12-06
        • 2017-09-02
        • 1970-01-01
        相关资源
        最近更新 更多