sql - 使用单元格作为参数在 Excel 中使用 SQL 创建参数化查询

标签 sql database excel where-clause parameterized-query

所以在 MS Excel 中,我从 SQL Server 的数据库中导入了一个表。我想创建一个有两个单元格的参数化查询。假设这两个单元格是 G1 和 G2。 G1 获取一个参数/类别,G2 从参数/类别获取一个值并查询您导入的表(本质上是一个从单元格输入动态生成的 WHERE 子句)。谁能告诉我怎么做?

最佳答案

编辑:基于聊天 session ,我们发现第一个参数是要搜索的列,第二个参数是要过滤的值。


您可以通过过滤导入的表格来做您想做的事情。

使用下面的代码作为您的模板。修改它以引用正确的工作表和范围。

Sub FilterByParameter()
    Dim wb As Workbook
    Dim dataSheet As Worksheet
    Dim parameterSheet As Worksheet
    Dim rng As Range
    Dim filterColumn As Long
    Dim filterValue As String

    Set wb = ThisWorkbook
    ' sheet that contains your table
    Set dataSheet = wb.Sheets("Sheet1")
    ' sheet that contains your parameters
    Set parameterSheet = wb.Sheets("Sheet2")
    ' range that contains your table, hard-coded here
    ' but can easily be set dynamically
    Set rng = dataSheet.Range("A1:F78")

    ' get the column you are searching
    filterColumn = parameterSheet.Range("G1").Value

    ' get the value you want to filter on
    filterValue = parameterSheet.Range("G2").Value

    ' turn off autofilters if set
    dataSheet.AutoFilterMode = False

    ' autofilter using your column and filter
    rng.AutoFilter field:=filterColumn, Criteria1:=filterValue

    ' now you can do whatever you want to with the rows
    ' that remain after the autofilter was applied
End Sub

参见 Efficient way to delete entire row if...有关如何使用可见行的示例。

关于sql - 使用单元格作为参数在 Excel 中使用 SQL 创建参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435178/

相关文章:

mysql - OR 的 SELECT 语句问题

sql - 如何在 SQL Server 中执行多次插入之前的操作

sql - 如何实现类似Digg的算法?

MySQL加入协助

excel - Array() = range().value

python - 如何在通过 python 运行时将变量传递到 sql 文件中

java - MongoDB:查找所有字段和值(_id 除外)都等于给定文档的文档?

php - MySQL DAYNAME 明智地检索不同时区的数据

VBA VLOOKUP 转换为值给出 #N/A

vba - 循环遍历 VBA 中的所有集合