0
我想通過更改變量值多次在我的宏中運行腳本。 下面是我爲一個值運行的代碼示例。 我想改變的代碼行是Excel VBA - 使用不同的變量值多次運行SQL腳本
sScript = sScript + "where m.outletid in ('" & sOutletId & "') " & vbCrLf
有時我想要的where子句是
其中( '12314')m.outletid
或
其中m.chainid在( '411')......
代碼:
Sub Report()
Dim sScript As String
Dim sServer As String
Dim sDatabase As String
Dim sTransTable As String
Dim iVal As Integer
Dim iReturnVal As Integer
Dim SheetExists As Worksheet
Dim WK_SHEET As String
sServer = Trim(UserForm1.txtServer.Value)
sDatabase = Trim(UserForm1.txtDatabase.Value)
sTransTable = Trim(UserForm1.txtTransTable.Value)
For Each SheetExists In Worksheets
If SheetExists.Name = ("Report") Then
Application.DisplayAlerts = False
Sheets("Report").Delete
Application.DisplayAlerts = True
Exit For
End If
Next SheetExists
Worksheets.Add after:=Sheets("Sheet1")
ActiveSheet.Name = ("Report")
WK_SHEET = "Report"
Sheets(WK_SHEET).Select
sOutletId = "12314"
sScript = "Select top 10 m.CustNumber, m.Name, sum(t.Transvalue) " & vbCrLf
sScript = sScript + "from " & sTransTable & " t " & vbCrLf
sScript = sScript + "where m.outletid in ('" & sOutletId & "') " & vbCrLf
sScript = sScript + "Group by m.CustNumber, m.Name " & vbCrLf
sScript = sScript + "order by sum(t.Transvalue)Desc " & vbCrLf
iReply = MsgBox(Prompt:="Do you wish to continue with the following script for Top 10 Customers?" + sScript + "", _
Buttons:=vbYesNo, Title:="Run MACRO Top 10 Reports")
If iReply = vbNo Then
End
End If
iVal = execute_sql_select(WK_SHEET, 2, 1, sServer, sDatabase, sScript)
Sheets(WK_SHEET).Name = "Outlet" & sOutletId & "Top 10 by Spend"
現在我想用OutletId 12315重新運行上述內容...我該怎麼做?我使用某種循環?
對不起,我嘗試添加這對我的VBA代碼,但我收到錯誤消息 - 「編譯錯誤:預期的行號或標號或語句或結束」的陣列。你能解釋一下我需要如何將它添加到我的代碼中,我對此仍然很陌生。謝謝 – HL8 2012-02-02 05:24:33