mysql - Excel - 在从 MySQL 数据库查询中使用可变单元格值 (Sheet1!A2)
问题描述
我正在尝试根据 Excel 工作簿 Sheet1 中单元格 A2 的值将变量值添加到查询编辑器中的以下 MySQL 查询中:
SELECT o.Name, o.OrganizationId
FROM Organization AS o
WHERE o.OrganizationId = Sheet1!A2
ORDER BY o.Name ASC
我试过使用自定义参数,但它似乎不适用于 MySQL 查询。
我尝试通过 VBA 脚本运行查询的另一件事:
Sub VoucherQuery()
queryString = "SELECT Name, OrganizationId FROM [Vouchers!$A1:B1000000]
WHERE OrganizationId=" & Worksheets("Sheet1").Range("A2").Value
End Sub
但无法将其与我查找的查询结合起来。
最后一次尝试让我创建了一个新的工作簿并从工作簿获取数据,在那里我使用原始 SQL 查询(与上述相同的查询,没有 WHERE 子句)从工作簿中提取数据,并尝试添加一个条件,但我不能'找不到任何代码来使用这种提取数据的方式进行编辑。
有谁知道如何使用 Get Data -> From MySQL Database Query Editor in Excel 来实现这一点?
解决方案
不确定查询编辑器,但这个宏应该适合你的情况。
只需要在评论下填写您的连接信息并在查询字符串中"fill these out below"
替换为您的实际架构schema
Sub SendQuery()
Dim conn As Object
Dim rs1 As Object
Dim sqlstr As String
Dim val, server_name, database_name, user_id, password As String
Set conn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
val = Trim(CStr(ThisWorkbook.Worksheets("Sheet1").Range("A2").Value))
' fill these out below
server_name = ""
database_name = ""
user_id = ""
password = ""
' connect to database
conn.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver}" _
& ";SERVER=" & server_name _
& ";DATABASE=" & database_name _
& ";UID=" & user_id _
& ";PWD=" & password _
& ";OPTION=3"
' setup select string
sqlstr = "SELECT o.Name, o.OrganizationId FROM schema.Organization As o WHERE o.OrganizationId = '" & val & "' ORDER BY o.Name ASC"
' send query
rs1.Open sqlstr, conn, adOpenStatic
' copy data to sheet
With ThisWorkbook.Worksheets("Sheet1").Cells(1, 1)
.ClearContents
.CopyFromRecordset rs1
End With
' cleanup
rs1.Close
Set rs1 = Nothing
End Sub
推荐阅读
- vue.js - vue-jalali-moment 过滤器在 v-for 上无法正常工作
- git - Azure DevOps Pipeline (CI) 中的 Git 问题
- wordpress - 如何更改这个罕见的自定义帖子类型存档 URL
- c# - 当 catch 未捕获时未执行 try
- java - 有没有办法设置标签内联代码的颜色?
- java - 没有为预期的 URL 调用 Spring Controller
- spring-batch - 由一个春季批处理作业准备的文件不能被其他人访问以进行删除
- swift - 如何正确地将日期转换为 NSDate?(在展开 Optional 值时意外发现 nil)
- python - 是否有返回定义用户定义类的文件的函数?
- php - woocommerce_loop_add_to_cart_link 过滤器挂钩如何深入工作?