【问题标题】:How to retrieve a specific value from a Table with SQL in VBA如何在 VBA 中使用 SQL 从表中检索特定值
【发布时间】:2015-01-26 06:39:03
【问题描述】:

我正在尝试从 TABLE 1 访问 特定 值 (CompanyNr) 并将其存储到变量中。以后使用它从TABLE 2访问公司名称

我的表格示例:

TABLE 1 (Contacts):
ID , CompanyNr , Contact


TABLE 2 (Companies):
CompanyNr , Company

我有一个ComboBox 用于联系人。当我从ComboBox 中选择某人时,我想自动过滤掉所选联系人工作的公司。

我试过这样:

我的密码:

CompNr = "SELECT [Contacts].[ID], [Contacts].[CompanyNr] FROM Contacts " & _
            "WHERE [Contacts].[ID] = " & ContactNrCombo.Value & " ORDER BY [Contact];"

MsgBox "Company Nr:" & CompNr

sq11 = "SELECT [Companies].[CompanyNr], [Companies].[Company] FROM Companies " & _
        "WHERE [Companies].[CompanyNr] = " & CompNr & "ORDER BY [Company]; "

但是 MsgBox 说:

CompNr = SELECT [Contacts].[ID], [Contacts].[CompanyNr] FROM Contacts                         WHERE [Contacts].[ID] = 255 ORDER BY [Contact]

但我需要为 CompanyNr 获取某个值(例如 50),以便我可以在其他 SQL 语句中使用它来过滤 TABLE 2

我是 SQL 语句的新手,我只是在互联网上找到了上面的一个示例,并认为我可以使用它。但效果并不好。

任何帮助将不胜感激

【问题讨论】:

    标签: mysql sql vba combobox


    【解决方案1】:

    您可以尝试以下方法,

    Set con = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    con.Open "Provider=..."    'Your Connectionstring
    
    rs.Open "SELECT [Contacts].[ID], [Contacts].[CompanyNr] FROM Contacts " & _
                "WHERE [Contacts].[ID] = " & ContactNrCombo.Value & " ORDER BY [Contact]", con, 1,3
    
    'Assuming there is only one company number per contact
    rs.MoveFirst
    CompNr = rs.Fields("CompanyNr").Value
    
    rs.Open "SELECT [Companies].[CompanyNr], [Companies].[Company] FROM Companies " & _
            "WHERE [Companies].[CompanyNr] = " & CompNr & "ORDER BY [Company]", con, 1,3
    
    'If you want to paste the second sql query in excel use this
    
    Sheets("Sheet1").Range("A1").CopyFromRecordset rs
    
    rs.Close
    con.Close
    Set con = Nothing
    

    【讨论】:

    • 感谢您的建议!但我找到了一个更流畅的解决方案——我使用了 DLookup !
    猜你喜欢
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2021-07-20
    • 2016-01-31
    • 2019-08-25
    相关资源
    最近更新 更多