2017-01-01 1 views
0

Ich habe ein Problem mit der Verbindungsgeschwindigkeit, wenn jemand eine Abfrage aus einer Access-Datenbank ausführt. Die Verzögerung beim Laden von Daten nimmt erheblich zu, wenn ein Benutzer nach einigen Minuten ohne Verwendung der App neue Abfragen ausführt.Microsoft Access - Wie erstellt man eine persistente Verbindung zu der verknüpften Datenbank zwischen Back-End und Front-End?

Ich fand this article für die Behebung dieses Problems, ich habe alle Schritte, aber die Codes funktionierten nicht für mich! Ich habe eine einzige Datenbank und die App arbeitet an Multi-User-Umgebung (9 Personen).

Hat jemand irgendwelche Lösungen/Vorschläge?

Danke, Peyman

+0

Wenn Sie sagen "aber die Codes funktionierten nicht für mich!" das hilft uns nicht, dir zu helfen. – nicomp

+0

Ja Sie haben Recht. Ich hätte das Thema genauer ansprechen sollen. Ich habe keine Fehlermeldungen erhalten, nachdem ich den Code zum Formular hinzugefügt habe. Es änderte nichts und die langsame Verbindung blieb unverändert! –

Antwort

1

Beachten Sie, dass eine ständige Verbindung nicht immer langsame Netzwerkprobleme nicht beheben. In ziemlich vielen Fällen jedoch.

Der einfachste Weg zu "testen", ob eine persistente Verbindung Ihre Probleme behebt, ist einfach eine verknüpfte Tabelle in Ihrem Frontend zu öffnen. (Jede Tabelle wird so lange ausgeführt, wie es eine verknüpfte Tabelle ist, die auf Ihr Backend zeigt). JETZT führe deinen Code oder deine Abfrage aus. Wenn es schnell läuft, hilft eine dauerhafte Verbindung Ihrem Fall. Wenn der obige einfache 3-Sekunden-Test NICHT die Leistung repariert, dann wird eine dauerhafte Verbindung zwar empfohlen und ist eine gute Idee - es wird Ihr Leistungsproblem nicht beheben.

So versuchen Sie das oben genannte. Wenn die oben genannten Probleme Ihre Probleme beheben, können Sie einer von mehreren Möglichkeiten nachgehen, um eine dauerhafte Verbindung zu erreichen.

Einige einfachen Wege zu zwingen, oder haben immer eine Verbindung offen zum hinteren Ende:

einfach in irgendeiner Form zu einer verknüpften Tabelle gebunden öffnen. Es könnte sogar eine "Testform" sein. Direkt nachdem Sie das Formular geöffnet haben, können Sie seine sichtbare Eigenschaft = false setzen.

Eine andere Möglichkeit besteht darin, eine globale Datensatzvariable zu definieren und diesen Datensatz beim Start zu einer Tabelle im Backend zu öffnen. ZB:

Set rst = CurrentDb.OpenRecordset ("select * from tblTest")

Beachten Sie, dass, wenn Sie eine nicht-kompilierte Anwendung mit (mdb zu einer kompilierten ACCDE gegen) als jede un-behandelt Der Fehler wird solche globalen Variablen ausblasen und somit wird Ihre dauerhafte Verbindung verloren gehen.

Bevor Sie sich auf eine wilde Jagd begeben, können Sie mit einer dauerhaften Verbindung testen, indem Sie einfach eine verknüpfte Tabelle in Ihrem Frontend öffnen, minimieren und dann Ihren Testcode oder was auch immer langsam ist. Wenn Sie keine Beschleunigung sehen, werden die Leistungsprobleme, die Sie haben, nicht durch Verwendung einer persistenten Verbindung gelöst.

+0

Danke Albert für deine Hilfe. Nach dem Teilen der Datenbank verringerte sich die Leistung der App aufgrund der Verbindungsgeschwindigkeit, die normal ist, da die Datenbank auf dem Netzlaufwerk gespeichert ist. Ich habe mehrere Dinge getan, um die Verbindung zu beschleunigen und irgendwie wurde es besser. In Bezug auf dauerhafte Verbindung, als nach einer Minute der Inaktivität die Leistung und die Verzögerungszeit erhöhen Ich fand eine Lösung für persistente Verbindung –

+0

Nicht sicher, was Sie mit etwas Verzögerung in der Zeit bedeuten - die dauerhafte Verbindung einfach immer die Back-End-Datei geöffnet.Es ist das Öffnen + Schließen der Datei, das sehr lange dauern kann. Wenn also das Backend immer offen ist, entfällt die Open/Close-Verzögerung. In dieser Hinsicht kann es niemals zu "Timeouts" kommen. –

Verwandte Themen