Я написал код сегодня для работы, и я столкнулся с проблемой, когда команда, которую я предоставляю SQL-серверу через VBA, не запрашивает такое же количество информации, как если бы я выполнял ту же самую точную команду на самом сервере. Если я выполнил код ниже в VBA, я получаю около 25 строк из 68 столбцов. Если я выполняю ту же самую команду на самом сервере, я получаю чуть более 1500 строк из 68 столбцов. То, что я делаю, - это выбрать номер заказа или дату, в форме и лишить гору данных только то, что хочет найти мой клиент. Я уверен, что это не лучший способ распространения данных по электронной таблице. Я ищу предложения и исправления ошибок!Распространение данных соты
Спасибо заранее,
Адам
Set conn = New ADODB.Connection
Set cmd = New ADODB.Command
constr = "Provider=REMOVEDFORPRIVACY"
If (ComboBox1.Value <> "" And ComboBox2.Value <> "") Or (ComboBox1.Value = "" And ComboBox2.Value = "") Then
MsgBox "Please select one search method.", vbOKOnly
ComboBox2.Value = ""
ComboBox1.Value = ""
ElseIf (ComboBox1.Value <> "" And ComboBox2.Value = "") Then
cmd.CommandText = "SELECT * FROM [Run_Data].[dbo].[RunLog_Data] WHERE SnapShot_Date = '" & ComboBox1.Value & "'"
conn.Open constr
cmd.ActiveConnection = conn
Set rst = cmd.Execute()
Do While Not rst.EOF
o = o + 1
If o > 67 Then
o = 1 'Column Position
n = n + 1 'Row Position
End If
Range(Cells(n, o), Cells(n, o)).Value = rst(o)
rst.MoveNext
Loop
rst.Close
conn.Close
ElseIf (ComboBox1.Value = "" And ComboBox2.Value <> "") Then
cmd.CommandText = "SELECT * FROM [Run_Data].[dbo].[RunLog_Data] WHERE OrderNumber = '" & ComboBox2.Value & "'"
conn.Open constr
cmd.ActiveConnection = conn
Set rst = cmd.Execute()
Do While Not rst.EOF
'Duplicate above and consolidate code
rst.MoveNext
Loop
rst.Close
conn.Close
End If
Вместо 'Do While Not Rst.EOF' ...' Loop', вы можете просто сказать «Ячейки (n, o) .CopyFromRecordSet rst'. (Я думаю) (например, «Ячейки (2,1) .CopyFromRecordSet rst' должен [надеюсь] скопировать набор записей, начиная с ячейки A2) – YowE3K
Dang, спасибо. Не знаю, как я это пропустил. Очистил его также. – Flibertyjibbet