以下代码我似乎无法开始工作。我一直试图运行2个单独的查询。存储在变量历史记录中的第一个工作..但Open_Resolved中的第二个没有。我一直在研究和阅读,执行会起作用,但事实并非如此。我是VBA的新手,我知道我的查询可以在我的sql工作台中测试它。如果有人能说明如何纠正这一点我会非常感激。
谢谢
-KL
Private Sub CommandButton1_Click()
'Declare variables'
Dim TheSheet As Worksheet
Set TheSheet = Sheets("Sheet2")
QueryType = TheSheet.Cells(25, 4)
Set objMyConn = New ADODB.Connection
Set objMyRecordset = New ADODB.Recordset
Dim History As String
Dim Open_Resolved As String
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=XXXXX;" _
& "Initial Catalog=XXXXX;User ID=XXXXXXX;Password=XXXXXXXXX;"
objMyConn.Open
Sheets("Sheet2").Range("J9:O600").ClearContents
If ComboBox1.ListCount = 1 Or ComboBox1.Value = "" Then
Exit Sub
End If
'THIS CREATES A STRING LIST OF THE VALUES IN THE VARIABLE FROM COMBOBOX'
bnum = ""
If ComboBox1.Value = "Select All" Then
For intComboItem = 1 To ComboBox1.ListCount - 1
Id_split = Split(ComboBox1.List(intComboItem), " ")
If (bnum <> "") Then
bnum = bnum & " , "
'POSSIBLY CONVERT TO INT and feed it in that way.'
End If
bnum = bnum & "(" & Id_split(0) & ")"
Next
Else
Id_split = Split(ComboBox1.Value, " ")
bnum = "(" & Id_split(0) & ")"
End If
History = "SELECT id, time, team, importance, status, assigned " & _
"FROM XXXXXXXXXXX " & _
"WHERE id in (" & bnum & ")" & _
"ORDER BY id, time"
Open_Resolved = "SET NOCOUNT ON " _
& "DECLARE @blist table (id int);" _
& "insert into @blist values" & bnum & ";" _
& "SELECT id, time, team, importance, status, assigned " _
& "FROM XXXXXXXXXXXXX" _
& "WHERE Team like 'winner % name%' " _
& "AND id in (SELECT id FROM @blist) " _
& "ORDER BY id, time"
'objMyRecordset.Open '
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyConn.Execute bugOpen_Resolved
If QueryType = "History" Then objMyRecordset.Open History
If QueryType = "OPEN/RESOLVED" Then objMyRecordset.Open Open_Resolved
ActiveSheet.Range("J9:O600").CopyFromRecordset (objMyRecordset)
End Sub