Zum Inhalt springen

Visual Basic Excel Oracle


Empfohlene Beiträge

Geschrieben

Hi,

hab folgendes Problem:

Ich greife mir VB6 und ADO auf eine Oracle DB zu und will die Daten in einer Excel.Datei ausgeben.

Es funktioniert auch alles wunderbar,.. nur für ca.60.000 Datensätze brauche ich ca. 1,5 Stunden bis alles in der Excel.Datei steht.

Kennt jemand eine Methode mit der dies schneller geht.

Über Excel ein Query auf ne Oracle.DB zu machen und die Daten dann in Excel anzuzeigen geht ja auch recht flott ca. 1min bei 60.000 Datensätze..

Ich muß dies aber in VB realisieren.

Gibts es irgendwelche alternativen???

Geschrieben
Gibts es irgendwelche alternativen???

wäre vielleicht nicht ganz uninteressant wie du das in VB momentan machst...

schreibst du dir alle daten erst in ne textfile und dann in excel oder liest du aus der db einen satz und schreibst den gleich in excel?

Geschrieben

Ich lese die Daten mit einem Recordset aus... ach ich post mal den code:

        Set objConnect = New ADODB.Connection

        Set objRecset = New ADODB.Recordset



        objConnect.Open "Provider=msdaora;Data" & "Source=" & strDataSource & ";" & "User Id=" & strUsername & ";" & _

            "Password=" & strPassword & ";"


        objRecset.Open strSQL, objConnect, adOpenKeyset, adLockOptimistic


        dblRowstart = 15


        For i = 1 To objRecset.Fields.Count - 1


            objExcel.Worksheets(1).Cells(dblRowstart, i) = objRecset.Field(i).Name


        Next i


       While Not objRecset.EOF 


            dblRowstart = dblRowstart + 1


            For j = 1 To objRecset.Fields.Count - 1


            objExcel.Worksheets(1).Cells(dblRowstart, j) = objRecset.Fields(j)


            Next j


            objRecset.MoveNext


        Wend

Geschrieben

also ich vermute sehr stark dass es daran liegt dass du das zeug aus der DB holst und jeden satz einzeln ins Sheet schreibst... sowas braucht zeit... versuchs doch mal erst in ne textdatei zu schreiben, also normal mit print... das sollte dann schon schneller gehn... und dann alles auf einmal in die excel file haun...

Geschrieben

Werde ich wohl versuchen müssen...

Hab grad mit einem ehemaligem Azubi von uns gelabert und der hat dies auch als noch einzige alternative gesehen...

Anderen Oracle Treiber hab ich auch schon probiert, aber von der Zeit her hab ich keinen unterschied bemerkt.

Danke euch schon mal für eure Aufmerksamkeit und Zeit die ihr erübrigen konntet!!! :)

Falls aber jemand doch noch n Gedankenblitz hat... herdamit!! :WD

Geschrieben

Das Problem liegt nicht an der Oracle Datenbank, dessen Treiber oder dem Zugriff im Allgemeinen. Das Bottleneck ist das Einfügen in die Excel-Datenbank! Du musst jede Zeile einzeln in Excel einfügen, zur nächsten Zeile gehen, dann dort einfügen etc. Das dauert! Schreibt doch in Excel mal ein kleines Makro, dass in jede Zelle der 1. Spalte einen Buchstaben reinschreibt, du wirst sehen... *gähn*

Ausserdem ist bei Excel die ANzahl der Rows auch begrenzt, das solltest du unbedingt im Hinterkopf behalten!

Ich würde evtl. über ein Grid gehen und als Databound die Oracle-Datenbank angeben. Was du dann allerdings noch machen musst, ist das Grid als Excel-Tabelle zu konvertieren. Aber das alles zusammen sollte AFAIK wesentlich schneller gehen, zumal du den Zeitaufwand auch erst beim Speichern hast. Der Benutzer müsste erst zum Schluss ein wenig warten.

Geschrieben

Gelobt sei "Microsoft Excel Visual Basic-Referenz"!! :mod:

objExcel.Worksheets(1).Range(strRowstart).CopyFromRecordset objRecset, lngRowmax

Mehr braucht man nicht um einen Recordset in Excel anzuzeigen!! :D

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...