Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 10:16:07
dirk
Hallo,
ich habe eine Excel-Tabelle, in die ich Daten (Mitarbeiterzeiten) aus einer SQL-Datenbank (aus Netzlaufwerk) importiere.
Für jeden Monat habe ich ein Arbeitsblatt angelegt, in das ich die jeweiligen Zeiten kopiere. Funktioniert soweit alles, die Anzahl der Datensätze ist überschaubar (ca. 1000 insgesamt, ca. 200 pro Arbeitsblatt).
Nur: Die Reaktionszeiten beim Arbeiten mit dieser Datei sind fürchterlich hoch, ein Anklicken einer Zelle, kopieren, selbst Wechsel auf ein anderes Arbeitsblatt etc. dauern teilweise 1-2 MINUTEN!
Am Netzwerk kann es nicht liegen, 100Mb/sec, das Arbeiten mit anderen großen Excel-Dateien (z.B. 5 MB) vom Netz liegt im Sekundenbereich.
Hat jemand auch mal so ein Phänomen gehabt und vielleicht sogar eine Lösung/Abhilfe ;-) ?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 10:42:00
Renee
Hi Dirk,
Zu wenig Information um zu helfen...
1. Wie werden die Daten importiert? Verknüpft, Queryobjekct im Blatt, VBA, DAO, ODBC......
2. Was für Makros/Funktionen enthält die Tabelle ?
3. Existieren Verknüpfungen zu andere Objekten ?
etc..etc..
Greetz Renee

AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 11:07:57
dirk
Hi Renee,
o.k., dann hier weitere Details und Antworten zu Deinen Fragen:
1. Wie werden die Daten importiert? Verknüpft, Queryobjekct im Blatt, VBA, DAO, ODBC......
- über "Externe Daten importieren" wurde eine Datenabfrage erstellt: über Microsoft Query und einem SQL-String/Anweisung werden Daten aus einer Oracle-Datenbank importiert und in Spalte A bis C geschrieben, ca. 800-100 Datensätze.
Dies geschieht per ODBC, dazu ist die Einrichtung eines ODBC-Datenbank-treibers auf dem Rechner notwendig (Verwaltung - Datenquellen (ODBC) - System-DSN - Oracle-Treiber).
Die ODBC kann die Verlangsamung aber m.E. nicht verursachen, da andere Dateien mit ähnlichen Abfragen performant sind.
2. Was für Makros/Funktionen enthält die Tabelle ?
nur ein paar einfachere Makros zur Bedienung wie:Datei schließen, Zelle mit aktuellem Datum ausfüllen etc. und Aktualisierung der Datenabfrage; daran kann es nicht liegen, die Makros laufen schnell.
3. Existieren Verknüpfungen zu andere Objekten ?
- nein

Anzeige
AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 11:17:00
Renee
Hi Dirk,
Wenn Du die Tabelle offen hast und im Direktfenster des VB-Editors diese Zeile eingibst:

Msgbox Activesheet.querytables().count

was für eine Zahl wird rausgeschrieben?
Wie gross (in KB) ist die Tabelle?
Greetz Renne

AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 11:31:00
dirk
Hi Renee,
die messageBox gibt aus: "25" ...
also lediglich 25KB?! (ist das die Größe der importierten Daten(-tabelle)?)
dirk

AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 11:32:00
Ramses
Hallo
Die 25 bedeutet, dass du 25 Abfragen in deiner Tabelle hast :-)
Gruss Rainer

AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 11:36:00
Renee
Hello Dirk,
Das was ich vermutet hab. Viele VBA-Bastler arbeiten mit Queryobjekten, ohne sie zu verstehen.
Da kommen oft von aufgezeichnetem Code Konstrukte zustande, die solche Objekte immer neu addieren, statt auf bestehende zu greifen und zu refreshen.
Also analysiere Deinen Code, vermutlich brauchst Du kaum 25 Abfragen und mit jedem Refresh wird's vermutlich eine mehr.
Greetz Renee

Anzeige
AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 12:44:57
dirk
dies ist mein Makro zum Aktualisieren der Daten:

Sub sql_daten_aktualisieren()
Sheets("SQL-Abfrage").Select
Range("A1").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("E9").Select
End Sub


In der Tat brauche ich nur eine Abfrage, aber damit dürfte doch nur eine Abfrage refresht werden, oder?
Nach Durchführung der Aktualisierung bleibt es übrigens bei 25 Abfragen.
Noch was allgemein dazu:
Wie kann ich die Verknüpfung zur externen Datenquelle / die Abfrage in einer Tabelle wieder löschen?
Beim Kopieren der Daten in ein anderes Tabellenblatt "wandert" die Verknüpfung zu den Daten nämlich mit , obwohl ich nur die Werte einfüge.
Danke auf jeden Fall schon mal für die ersten Bemühungen!
gd

Anzeige
AW: Excel-Tabelle mit SQL-Daten sehr langsam
16.08.2007 13:39:00
Renee
Hi Dirk,
1. Stelle den Namen Deiner Querytable fest: Du auf A1, rechtsklick - Datenbereichs-Eigenschaften
2. Passe die erste Codezeile an
3. Lass das Löschmakro laufen:

Sub AlleAusserEinem()
Const sKeepQuery = "DiesesQueryBehalten"
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
If qt.Name  sKeepQuery Then qt.Delete
Next
End Sub


Nach einem Kopieren, kannst Du mit einer ähnlichen Routine die Queries löschen. Dabei bleiben die Daten erhalten nur die Queryobjekte verschwinden:


Sub AlleQueriesWeg()
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next
End Sub


Greetz Renee

Anzeige
Lösung gefunden - Problem gelöst, danke!
16.08.2007 14:51:00
dirk
Hallo Renee,
habs mir auch noch mal genauer angeschaut und die Sache mit den Namen/Feldnamen/query tables rausgefunden:
In meiner Datei waren sage u. schreibe über 10.000 (!) Namen vergeben (= querytables)! Benötigt wird jedoch wie gesagt 1 Abfrage.
Bei jedem Aktualisieren u. Kopiervorgang (habe immer die ganzen Spalten kopiert) wird wohl ein neuer Name vergeben.
Habe die Löschung auch schon durchgeführt - mit den "Navigator Utilities" geht das sehr elegant und komfortabel. Bekannt?
Aber danke für Deinen Code - den werde ich in meine Aktualisier- und Kopiermakros mit einbauen.
Also, Du hast mich auf den rechten Lösungsweg gebracht und Deine Bemerkung über die VBA-Bastler stimmt wohl in diesem Fall.... ;-))
Danke nochmal, greetz Dirk

Anzeige
OT @Renee
16.08.2007 17:15:53
Ramses
Hallo Renee
Muss ich jetzt mal sagen:
Du bist ne echte Bereicherung für dieses Forum :-)
Gruss Rainer

AW: OT @Renee
16.08.2007 17:27:05
Renee
Hi Rainer,
Das ist ja mal Balsam auf die Seele einer sonst hinter vorgehaltener Hand "Computer-Dütschi" Genannten.
Und dann noch aus so kompetentem Mund... ähh meine Schreibers Hand....
Gracias Renee

20 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige