0
変数値を変更して、マクロ内で複数回スクリプトを実行したいとします。 以下は、1つの値に対して実行するコードの例です。 私が変更したいコードの行はExcel VBA - 異なる変数値でSQLスクリプトを複数回実行する
sScript = sScript + "where m.outletid in ('" & sOutletId & "') " & vbCrLf
はいつか私がwhere句が
になりたいです( '12314')でm.outletid
または
( '411')のm.chainid ...
コード:
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