Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vbs Fehler bei Excel Import

vbs Fehler bei Excel Import
Julia
Mein vbs welches mir eine SQL-Abfrage in xls importiert. Läuft seit Monaten fehlerfrei.
Habe jetzt plötzlich einen Fehler obwohl sich nichts geändert hat:
Dies 2. Zeile des Codeausschittes wird moniert:
----------------------------------------------------------------
For i = 0 to RS.Fields.Count -1
objSheet.Cells(rowCount+1, i+1).Value = RS.Fields.Item(i).Value
Next
rowCount = rowCount + 1
RS.MoveNext
x = x + 1
Loop
----------------------------------------------------------------
Ich habe pro SQL solch ein Skript. Bei den anderen SQL-Abfragen funzt alles. Nloß bei dieser nicht. Habe die besagte SQL_Anweisung direkt gegen die DB geschickt und es kam ein Ergebnis zurück...
Jemand eine Idee? Er importiert mir nur einen Teil und dann bricht er an der gleichen Stelle ab...

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Sorry war Fehler in der DB
10.09.2009 14:56:57
Julia
erledigt!
AW: vbs Fehler bei Excel Import
10.09.2009 15:11:03
Luschi
Hallo Julia,
in Deiner vorrangegangenen Anfrage sah der Vba-code noch so aus:

Do While Not RS.EOF
'objExcel.StatusBar = x & " Datensätze aus JIRA importiert" 'Text für Statusbar 'macht nur Sinn  _
bei objExcel.Visible = True
'Die Spalenüberschriften einfügen Bezug aus dem SQL-Statement
If( headerSet = 0 ) Then
For i = 0 to RS.Fields.Count - 1
objSheet.Cells(rowCount, i+1).Value = RS.Fields.Item(i).Name
Next
headerSet = 1
End If
'Die dazugehörigen Werte einfügen
For i = 0 to RS.Fields.Count -1
objSheet.Cells(rowCount+1, i+1).Value = RS.Fields.Item(i).Value
Next
rowCount = rowCount + 1
RS.MoveNext
x = x + 1
Loop
Daraus würde ich folgenden Code machen:

'objExcel.StatusBar = x & " Datensätze aus JIRA importiert" 'Text für Statusbar 'macht nur Sinn bei objExcel.Visible = True
'Die Spaltenüberschriften einfügen Bezug aus dem SQL-Statement
For i = 0 to RS.Fields.Count - 1
objSheet.Cells(rowCount, i+1).Value = RS.Fields.Item(i).Name
Next
'Die dazugehörigen Werte einfügen
objSheet.Range("A2").CopyFromRecordset rs
'und jetzt weiter wie bisher
Gruß von Luschi
aus klein-Paris
Anzeige
AW: vbs Fehler bei Excel Import
10.09.2009 16:14:58
Julia
Kannst mir das nochmal explzit aufschrewiben?
Wenn ich das von dir auffgeführte duch das neue ersetzte (komplett) kommen Fehler
z.B. Loop wird erwartet.
Wo ist der Vorteil von deiner Lösung?
AW: vbs Fehler bei Excel Import
10.09.2009 17:33:16
Luschi
Hallo Julia,
seit Excel 2002 (XP) gibt es die Methode 'CopyFromRecordset'. Damit entfällt die gesamte Schleifenkonstruktion von Do While Not RS.EOF bis Loop.
Der davor stehende Vba-Code ist natürlich wichtig und darf nicht weggelassen werden.
Ich beginne bei dieser Vba-Zeile:

'der Vba-Code vor der Do While-Schleife
RS.Open
'damit zeigt der DB-Cursor auf den 1. DS im Recordset
'statt der gesamten Do-While-Schleife werden sofort die Spaltenüberschriften (Feldnamen des  _
RecordSets) geschrieben
For i = 0 to RS.Fields.Count - 1
objSheet.Cells(rowCount, i+1).Value = RS.Fields.Item(i).Name
Next
'jetzt werden alle DS aus dem Recordset in die Excel-Tabelle geschrieben
'beginnend in  der Zelle 'A2'
objSheet.Range("A2").CopyFromRecordset RS
'das war's dann auch schon
'nun noch das RS und die Connection schließen sowie die Objekt-Variablen zerstören
'genauso, wie es nach dem LOOP-Befehl steht
'vergiß dabei die folgenden 3 Objekte nicht
Set objExcel = Nothing
Set objWb = Nothing
Set objSheet = Nothing
Gruß von Luschi
aus klein-Paris
Anzeige
AW: vbs Fehler bei Excel Import
11.09.2009 08:57:33
Julia
Sorry aber deine Beschreibung verwirrt mich :)
Kannst du den ganzen Code mit deiner Änderung posten?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige