在SQL查询字符串中使用excel单元格(函数)

时间:2013-07-11 06:38:01

标签: sql excel

我想将数据从mssql数据库导入到我的Excel电子表格中。一切都可以正常使用参数。但我想在函数查询中使用单元格值:

示例:

select ROUND(dbo.fn_geteffort(3484, 'Project', 0, 1)/8,2) 

我想使用3484的单元格值!

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你的意思是值'3484'在一个单元格中,你想在查询字符串中包含它?

然后:

s = "select ROUND(dbo.fn_geteffort(" & Sheet.Cells(RowNumber, ColumnNumber) & ", 'Project', 0, 1)/8,2)"

或者:

s = "select ROUND(dbo.fn_geteffort(" & Sheet.Range("A1").Value & ", 'Project', 0, 1)/8,2)"

答案 1 :(得分:0)

您必须使用VBA脚本更改查询。

Worksheets("sheet_with_table").ListObjects(1).QueryTable.CommandText = "select ROUND(dbo.fn_geteffort(" & Worksheets("status").Range("D5").Value & ", 'Project', 0, 1)/8,2)"

如果您希望在更改状态时更新查询!D5,请在状态工作表事件中发布以下代码更改

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D5")) Is Nothing Then
        Worksheets("sheet_with_table").ListObjects(1).QueryTable.CommandText = "select ROUND(dbo.fn_geteffort(" & Worksheets("status").Range("D5").Value & ", 'Project', 0, 1)/8,2)"
    End If
End Sub