VBA – 使用单元格引用的SQL查询

我一直在研究一个新的工具,我需要它来运行基于什么单元格的查询。

例如,

我有3个单元在Excel中有数据validation。 C4:部门C5:组C6:类别

基本上如果select(全部),运行第一个查询,否则运行第二个。 我需要组来运行一个基于单元格是这样的查询:

If Sheets("Rollup").Range("C5").Value = "(All)" Then Sheets("Codes").Range("B3:XFD1048576").Clear cn.Open SQLServerConnString strQuery = "Select DEPT_CATG_GRP_DESC from dbo.Rollup GROUP BY DEPT_CATG_GRP_DESC ORDER BY DEPT_CATG_GRP_DESC" Set rs = cn.Execute(strQuery) Sheets("Codes").Range("B3").CopyFromRecordset rs rs.Close cn.Close Else Sheets("Codes").Range("B3:XFD1048576").Clear cn.Open SQLServerConnString strQuery = "Select DEPT_CATG_GRP_DESC WHERE DEPT_CATG_GRP_DESC = C5.Value from dbo.Rollup GROUP BY DEPT_CATG_GRP_DESC ORDER BY DEPT_CATG_GRP_DESC" Set rs = cn.Execute(strQuery) Sheets("Codes").Range("B3").CopyFromRecordset rs rs.Close cn.Close End If 

你的SQLstring只是一个string。 你必须连接值来build立你想要的string。

  strQuery = "Select DEPT_CATG_GRP_DESC WHERE DEPT_CATG_GRP_DESC = " & Sheets("Rollup").Range("C5").Value & " from dbo.Rollup GROUP BY DEPT_CATG_GRP_DESC ORDER BY DEPT_CATG_GRP_DESC