Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
472to476
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
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Access-Daten einlesen beschleunigen

Access-Daten einlesen beschleunigen
23.08.2004 18:28:31
Sabine
Hallo liebe Forums-Besucher,
aus dem Board habe ich mir aus diesem Thread den dort veröffentlichten VBA-Code "geholt" und in meiner Arbeitsmappe eingesetzt: https://www.herber.de/forum/index.htm?https://www.herber.de/forum/archiv/468to472/t469600.htm .
Das funktioniert auch. :-)
Ich frage eine Access-Datei über ein 10MB-Netzwerk ab, die 8 MB groß ist und zugleich von mehreren KollegInnen genutzt wird.
Die Abfrage dauert aber ziemlich lange, d.h. ich kann schon mal 4-7 Sekunden auf das Abfrageergebnis warten, unabhängig wieviel DS gesucht werden und ob komplexe oder einfache SQL-Anweisungen verwendet werden. Habe mir die Laufzeit mal ausgeben lasse: das Einlesen in die Tabelle ist ziemlich schnell, das Recordset hingegen lahmt.
Kann man das vielleicht irgendwie beschleunigen? Vielleicht über Trick 17? Darf auch ruhig Quick And Dirty sein.
Herzliche Grüße
Eure Sabine
PS: Komprimieren kann ich die Datenbank vor dem Zugriff nicht, weil sie stets im Einsatz ist.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access-Daten einlesen beschleunigen
EtoPHG
Hallo Sabine,
Die Zugriffszeit selber kann nicht so einfach beieinflusst werden.
Ich hab allerdings die Erfahrung gemach, dass vor dem Absetzen des Queries
folgendes hilft:
Application.Calculation = xlCalculationManual

Dann das Query
Anschliessend
Application.Calculate
Application.Calculation = xlCalculationAutomatic
Gruss Hansueli
AW: Access-Daten einlesen beschleunigen
24.08.2004 00:57:48
Sabine
Hallo Hansueli,
danke für den Hinweis.
Das Beschleunigen muss auch gar nicht einfach beeinflusst werden. Es darf ruhig etwas Tricky oder Dirty sein.
Gibts noch weitere Maßnahmen/Möglichkeiten?
Danke, liebe Grüße
Sabine
Anzeige
AW: Access-Daten einlesen beschleunigen
EtoPHG
Hallo Sabine,
Also hier kommt tricky, aber nicht dirty....
Anstelle des Codes:
Erstelle eine Query-Objekt (Menü Daten Externe Daten ...)
Gib ihm z.B. den Namen "KundenAbfrage"
Es sieht so aus, als ob dein SQL dynamisch nach der Kundennummer verlangt.
Erstelle das Queryobjekt zuerst mit einer festen Kundennummer.
Erstelle einen Button und ein VBA Makros, der nach der Kundennummer fragt (z.B. Inputbox). Mit der Kundennummer manipulierst Du anschliessend den .SQL teil des Queries und führst es aus. Codemässig würde der Teil in etwa so aussehen:
Dim sSQL as string
sSQL = "SELECT * FROM tblKunde WHERE (tblkunde.KdNr ='" & KdNummerVonInputBox & "')"
QueryTable("KundenAbfrage").Sql = sSQL
Selection.QueryTable("KundenAbfrage").Refresh BackgroundQuery:=False
Ich habe bewusst auf den LIKE %xxx% verzichtet. Achte darauf, dass in der AccessDB die tblkunde.Kdnr ein INDIZIERTES Feld ist. Ein LIKE muss immer einen FULL-TABLE SCAN machen, was bei umfangreichen Tables lange dauern kann.
Alles klar ?
Gruss Hansueli
Anzeige
AW: Access-Daten einlesen beschleunigen
24.08.2004 18:43:45
Sabine
Hallo Hansueli,
danke für den Hinweis.
Auch das hatte ich bereits Ergebnislos versucht. Die Query dauert teilweise sogar etwas länger als das Recordset. Dabei ist relativ unerheblich, ob ich nun mit oder ohne Like arbeite. Kann das wirklich sein?
Auf die Tabelle habe ich keinen Einfluss, d.h. auch nicht auf den Index. Zudem beinhaltet die von mir abgefragte Tabelle mehrere Werte, die ich per Like abgefragen muss (ich habe nicht den gleichen Aufbau wie in dem Beispiel aus dem Board, das ich als Grundlage verwendet habe).
Gruß
Sabine
PS: liegt die Access-DB lokal ab und bin ich allein damit am Arbeiten habe ich nen schnellen Zugriff, da dauert alles in allem gerade mal 0,3-0,4 Sekunden. Sobald ich aber die Datei im Netzwerk mit mehreren Nutzern nehme sieht es anders aus.
Anzeige
AW: Access-Daten einlesen beschleunigen
EtoPHG
Hallo Sabine,
Deine Aussagen belegen in dem Fall ziemlich klar, dass die Geschwindigkeitsverluste am
a) Server, Ladevorgang der AccessEngine, Memory um DB-Daten zu cachen, Ev. Konfiguration der DB
und ev.
b) an der Übertragungsleistung des Netzwerkes liegen muss.
Gruss Hansueli
AW: Access-Daten einlesen beschleunigen
26.08.2004 21:02:39
Sabine
Hallo,
danke Dir für Deine Rückmeldung. Konnte Krankheitsbedingt nicht früher antworten,
Sabine

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige