mysql - 如何在 VBA 中使用 SQL 从表中检索特定值

标签 mysql sql vba combobox

我正在尝试从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 语句不熟悉,我刚刚在互联网上找到了上面的示例,并认为我可以使用它。但效果并不好。

如有任何帮助,我们将不胜感激

最佳答案

您可以尝试以下操作,

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

关于mysql - 如何在 VBA 中使用 SQL 从表中检索特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174497/

相关文章:

c# - 如何将 SQL 'LIKE' 与 LINQ to Entities 一起使用?

excel - 通过vba计算包裹单元格中的行数

excel - VBA WinHTTP 登录到 Oddsportal

VBA 代码仅适用于第一张纸

mysql - 跨连接的唯一索引?

mysql - 添加冒号(:) as part of query

php - 当mysql查询结果没有值时在PHP中显示消息

mysql - 如何将其他表中的选择分组为sql中的一列?

sql - 我应该如何排序返回的查询的子集并将其放在结果的顶部?

sql - 查找 Postgres 数组中所有位置的所有元素的出现次数(计数)?