Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

schlechte Performance

schlechte Performance
16.07.2008 11:03:02
Patrick
Hallo,
ich habe mir mit "Daten importieren" mehrere SQL-Abfragen ins Excel geladen. Da es wirklich viele sind vermute ich, dass deshalb meine Performance sehr in die Knie geht. Genau da liegt mein Problem:
Meine Performance ist im A****. Excel lässt sich nur sehr langsam starten und reagiert auch sehr langsam, das Programm läuft nicht flüssig im VBA-Modus, etc.
Meine Frage lautet deshalb ob es möglich ist, wenn man mit "Daten importieren" eine Abfrage ins Excel lädt, anschließend die Verbindung schließen kann oder der eine oder andere einen guten Tipp hat um die Performance des Programmes zu verbessern?
Mfg

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schlechte Performance
16.07.2008 13:25:00
Luschi
Hallo Patrick,
wenn man externe Daten importiert, dann sollte man in Excel folgende Eigenschaften/Ereignisse abschalten:
- Bildschirmaktualisierung
- automatische Berechnung
- Ereignisausführung
Das kann man mit einer Prozedur realisieren:

Sub getMoreSpeed(bDoIt As Boolean)
Application.ScreenUpdating = Not (bDoIt)
Application.EnableEvents = Not (bDoIt)
Application.Calculation = IIf(bDoIt, xlCalculationManual, xlCalculationAutomatic)
Application.Cursor = IIf(bDoIt, 2, -4143)
End Sub

Vor dem Aufruf der Abfrage schreibst Du:
getMoreSpeed True
und nach der Ausführung der Abfrage:
getMoreSpeed False
Damit hast Du Excel während der Ausführung der Abfrage ruhig gestellt. Solltest Du Daten aus Accesstabellen nach Excel holen und die Where-Klausel ist kompliziert aufgebaut (viele Nebenbedingungen), dann hast Du mit der Standard-Lösung (Daten-Externe Daten importieren...)schlechte Karten.
Da Access eine Standalone-Anwendung ist, schickt Access alle Datensätze zurück und erst Excel muß dann die Datensätze filtern, die der Abfrage entsprechen (also die Where-Bedingung auszuwerten).
Hier ist dann eine Lösung per ADODB/ADOX notwendig. Aber auch dafür habe ich ein Lösungsbeispiel parat. Kommen die Daten vom einem SQL-Server (MS-SQL, Oracle, DB2, Informix usw.) dann reicht die Standardlösung. Denn diesen Programmen ist es eigen, die komplette Abfrage auszuwerten und nur die tatsächlich gefundenen Datensätze auf die Reise zu schicken.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: schlechte Performance
16.07.2008 13:51:31
Patrick
Vielen Dank für deine Antwort.
Die Performance hat sich extrem gesteigert, jedoch ist sie immer noch nicht die schnellste, aber damit muss ich leben :)
MfG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige