Ich schrieb einige Code heute für die Arbeit, und ich habe ein Problem, wo der Befehl ich den SQL-Server über VBA bieten nicht die gleiche Menge an Informationen, als ob ich genau den gleichen Befehl ausführen würde auf dem Server selbst. Wenn ich den Code unten in VBA ausführe, erhalte ich ungefähr 25 Reihen von 68 Spalten. Wenn ich denselben Befehl auf dem Server selbst ausführe, erhalte ich nur über 1500 Zeilen mit 68 Spalten. Ich wähle entweder eine Bestellnummer oder ein Datum in einem Formular aus und streiche den Datenberg auf genau das, was mein Kunde sucht. Ich bin sicher, dass dies nicht der beste Weg ist, Daten über eine Tabelle zu verteilen. Ich suche nach Vorschlägen und Fehlerkorrekturen!Verteilen Cell Daten
Vielen Dank im Voraus,
Adam
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
Statt 'Do while not rst.EOF' ...' Loop', können Sie möglicherweise einfach sagen 'Cells (n, o) .CopyFromRecordSet rst'. (Ich denke) (z. B. "Zellen (2,1) .CopyFromRecordSet rst" sollte [hoffentlich] das Recordset ab Zelle A2) kopieren. – YowE3K
Dang, danke. Ich weiß nicht, wie ich das vermisst habe. Gereinigt es auch. – Flibertyjibbet