2017-01-23 2 views
0

ich ein Problem habe versucht, einige Daten aus einem Cord-Set zu extrahieren, der VBA-Code ist etwas so einfaches wie folgt aus:Recordset kehrt nicht alle Daten VBA

cnt.Open stDB 

Query = "SELECT TriggerDescription," 
Query = Query & " FROM Research_Control" 
Query = Query & " WHERE (((Research_Control.Status) = 1))" 
Query = Query & " ORDER BY Research_Control.Enterprise;" 

rs.Open Query, cnt, adUseClient 

    While Not rs.EOF 

     Sheets("Research_Review").Cells(lineResearch + line, colResearch) = rs.Fields(0) 

     line = line + 1 
     rs.MoveNext 

    Wend 

rs.Close 

cnt.Close 

Die „TriggerDescription“ ist so groß wie 500 Characteres und wenn ich diesen Wert in eine Zelle in Excel kopieren, erscheint es nur bis 300 Zeichen

Also meine Frage ist: Wie kann ich alle Daten aus einem Recordset extrahieren?

PS: Ich habe bereits versucht, den Timeout mit „cnt.CommandTimeout = 60“ zu ändern, aber es funktioniert auch nicht

EDIT: In der Tabelle das Feld „TriggerDescription“ Entwerfen FYI ein Ntext Datentyp ist.

+0

Warum dies alles ** Text ... **? – Sami

+0

Diese Triggerbeschreibung ist nicht größer als 32.767 Zeichen, da dies das Maximum für eine [Zelle] ist (https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043- 467e-8e27-269d656771c3)? – rene

+0

Abhängig davon, wie groß dieser Text ist und ob der ADO-DB-Provider für den Zugriff dies unterstützt, können Sie ['GetChunk'] (https://msdn.microsoft.com/en-us/library/ms681747 (v = vs. 85) .aspx) auf diesem Feld. – rene

Antwort

1

@ A.S.H hat die Antwort gegeben, CopyFromRecordset mit ich alle Daten in die Zelle kopieren

Sheets("Test").Range("test").CopyFromRecordset rs

+0

Gut zu wissen, dass es funktioniert hat. Nun, Excel-integrierte Methoden sind immer besser als benutzerdefinierte Schleifen, weil sie optimiert und robust sind. Warum es nicht mit Ihrer Schleife funktioniert, ist ein Rätsel, aber höchstwahrscheinlich wegen einer bestimmten Größenbeschränkung für den Zuweisungsoperator von Excel-Zellen. –

+0

@ A.S.H Vielen Dank! Ich werde versuchen, von nun an mehr integrierte Methoden von Excel zu verwenden –

Verwandte Themen