[英]Apply SQL query condition to multiple columns in VBA
你的意思是這樣嗎?
Public Sub test()
Dim sql_string As String
Dim sheet_name As String
sheet_name = "Sheet5$"
sql_string = "Select "
sql_string = sql_string & GetField(sheet_name, "num") & ","
sql_string = sql_string & GetField(sheet_name, "num1") & ","
sql_string = sql_string & GetField(sheet_name, "num2") & ","
sql_string = sql_string & GetField(sheet_name, "num3")
sql_string = sql_string & " from [" & sheet_name & "]"
Debug.Print sql_string
End Sub
Public Function GetField(ByVal sheet_name As String, ByVal fieldName As String)
GetField = "[" & sheet_name & "].[" & fieldName & "] * IIf(([" & sheet_name & "].[to] - [" & sheet_name & "].[frm]) < 365, 0.4, IIf(([" & sheet_name & "].[to] - [" & sheet_name & "].[frm]) > 365, 1, 0))"
End Function
結果:
Select [Sheet5$].[num] * IIf(([Sheet5$].[to] - [Sheet5$].[frm]) < 365, 0.4, IIf(([Sheet5$].[to] - [Sheet5$].[frm]) > 365, 1, 0)),
[Sheet5$].[num1] * IIf(([Sheet5$].[to] - [Sheet5$].[frm]) < 365, 0.4, IIf(([Sheet5$].[to] - [Sheet5$].[frm]) > 365, 1, 0)),
[Sheet5$].[num2] * IIf(([Sheet5$].[to] - [Sheet5$].[frm]) < 365, 0.4, IIf(([Sheet5$].[to] - [Sheet5$].[frm]) > 365, 1, 0)),
[Sheet5$].[num3] * IIf(([Sheet5$].[to] - [Sheet5$].[frm]) < 365, 0.4, IIf(([Sheet5$].[to] - [Sheet5$].[frm]) > 365, 1, 0)) from [Sheet5$]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.