Überblick über die MS Access-Programmierung

7

Ich bin ein Java EE-Entwickler und wurde nur von jemandem kontaktiert, der mich will für sein Unternehmen ein Angebot zusammen für eine Anwendung bringen, die mit ihren MS Access „Back-End“ integrieren können.

Ich hatte gehofft, dies zu veröffentlichen und einen allgemeinen Überblick über die besten Praktiken der MS Access-Programmierung zu erhalten. Ich nehme an, das Programm würde in VB vollständig sein, aber nicht wissen, ob ich die Möglichkeit, etwas zu schreiben, in VB.NET oder (vorzugsweise) C # hat.

Ich verachte auch die Präsentationsschicht: irgendwelche guten GUI-Builder für Access-Anwendungen?

Was sind einige gemeinsame Tools und APIs (Unit-Test-Frameworks, Automatisierungssysteme bauen, etc.), dass MS Access Programmierer häufig verwenden?

Irgendwelche Links oder Ressourcen, die Sie empfehlen würden?

Es klingt wie eine ziemlich einfache Anwendung: Nehmen Sie die eingegebenen Daten, vergleichen Sie sie mit einigen Tabellen und werfen Sie etwas Ausgabe auf den Bildschirm. Ich bin ein ziemlich anständig Programmierer so, obwohl ich nie ein Access-Programm gemacht habe, bevor es nicht zu schwierig sein könnte für mich zu holen.

Danke für irgendwelche Gedanken oder Vorschläge!

    
Pam 17.06.2011, 20:17
quelle

1 Antwort

36

Zugriff als Front-End

Nun, die Leute fühlen sich stark von Access. Der Hauptgrund für die negative Sichtweise ist, dass es von Nicht-Entwicklern weit verbreitet ist, die kein Konzept für eine ordnungsgemäße Datenbankentwicklung haben und mit diesen kaum funktionierenden, entsetzlich gestalteten Anwendungen fertig werden, die das Herz der Entwickler erschrecken.

Damit ist Access nicht mehr als ein Tool für die schnelle Anwendungsentwicklung mit einer sehr geringen Eintrittsbarriere.

Das Gute und das Schlechte

Access ist eine ziemlich alte Produktlinie, die fast 20 Jahre umfasst. Viele Einwände gegen Access als Technologie basieren auf seiner frühen Geschichte: Da Rückwärtskompatibilität etwas ist, das Microsoft für wichtig hält, hat Access die meisten seiner Funktionen, gut oder schlecht, über die Jahre beibehalten.

Sie können die Wahl der VBA, nicht winform Formen sehen, die Förderung von Modulen über OOP, schlechte Entscheidungen zu sein, aber die Kontinuität dieser früh auf Designentscheidungen Zugang gemacht hat eine stabile Plattform zu bauen.

  • VBA: ist die Sprache, die niemals stirbt. Es ist klobig, veraltet, fehlt jüngsten Fortschritte in der Sprache, aber es ist auch schnell, einfach zu erlernen, flexibel, leicht zu Interop (zB Win32-APIs aufrufen ist wirklich einfach), und es kann mit externen Bibliotheken (Ereignis geschrieben angeschlossen werden. Net).

  • Gebundene Formulare: Per Voreinstellung kann Access mühelos Arbeitsanwendungen ohne Codezeile erstellen. Die meisten Abfragen können auch erstellt werden, ohne dass auf SQL zugegriffen werden muss. Wenn Sie ein Kontrollfreak sind, kann es nervig sein, aber es ist einfach, von dort aus alles zu coden und zu steuern.

  • Integration von Drittanbietern: Obwohl es viele Add-Ons für Access gibt, würde ich nicht empfehlen, die meisten Benutzersteuerelemente oder Bibliotheken von Drittanbietern zu verwenden, es sei denn, Sie müssen dies wirklich tun. Sie können in Umgebungen mit eingeschränkten Benutzerrechten sehr schwer zu implementieren sein und die Versionierung kann haarig werden.

  • Ribbon: Es kann gut oder schlecht sein, je nachdem, mit wem Sie sprechen, aber Microsoft hat viel investiert und es wird wahrscheinlich für eine Weile da sein. Zumindest das Menüband und die verbesserten Steuerelemente in Access 2007 und höher sorgen dafür, dass Anwendungen auf moderne Weise aussehen und sich verhalten. Vorbei die schrecklichen UIs von alten, können Sie jetzt wirklich schöne Dinge mit Themen, HTML-Layouts und einem modernen Band tun.

Zuverlässigkeit

Die meisten Einwände, insbesondere hinsichtlich der Zuverlässigkeit, sind einfach nicht mehr zutreffend.
Eine sorgfältig gestaltete Access-Anwendung kann Dutzende von Benutzern gleichzeitig unterstützen. Ich habe eine anständige Größe Anwendung Verwaltung Beschaffungs / Lager / Qualität / Teile / Projekte für ein Produktionsunternehmen, das 150 Benutzer hat, von denen in der Regel 50 zu jeder Zeit verbunden sind. Ich habe seit Jahren keine Korruption mehr gehabt.

Natürlich muss man immer bedenken, dass Access ist eine Multi-User-dateibasierte Datenbank, so dass man nicht erwarten kann ohne Risiko in Umgebungen mit unzuverlässigen oder langsamen Netzwerken zu arbeiten, und eine Verbindung zu einem einem Access-Backend über WiFi Fragt wirklich nach Ärger, genauso wie Sie auch nicht an einer großen Excel-Datei über WLAN arbeiten würden.

Die Wartung ist Teil des Lebenszyklus einer Anwendung. Vorbeugende Wartung ist extrem wichtig Warten Sie nicht, bis etwas schief läuft: Erstellen Sie einige Admin-Tools in Ihrer App, mit denen Sie den Status Ihrer Daten überprüfen können (stellen Sie sicher, dass alles in sich stimmig ist, ungültige Benutzereingaben erkannt werden usw.).
Verdichten Sie auch die Datenbank regelmäßig (ich mache es jeden Abend, nachdem ich eine Sicherungskopie als Teil der täglichen automatisierten Aufgaben auf dem Backend-Server erstellt habe).

Einige zufällige Tipps

  • Stellen Sie sicher, dass Ihr Front-End und Back-End getrennt sind: Es sollten nur Daten im Back-End vorhanden sein, und das Front-End sollte auf dem Computer jedes Benutzers installiert sein.
  • Öffnen Sie von Ihrem Front-End aus eine permanente Verbindung zu einer Dummy-Tabelle im Datenbank-Back-End: Durch die ständige Verbindung wird die Leistung erheblich verbessert. Aus dem Grund, warum haben Sie einen Blick auf diese Frage .
  • Das Backend sollte sich in einer flachen Netzwerkfreigabe befinden (nicht tief in mehrere Verzeichnisse).
  • Stellen Sie sicher, dass Sie genau darüber nachdenken, wie Sie Ihre Updates automatisch für alle Clients bereitstellen.
    Es gibt viele Möglichkeiten, dies zu tun. Ich entwickeln meine eigenen, aber man könnte verwenden oder Clickonce Tony Toews 's Auto-Front-End-Updater
  • Verwenden Sie die Runtime : Ihre Front-End-Anwendung kann ausgeführt werden, ohne dass Benutzer sich in ihre Interna einmischen, wenn Sie die Access Runtime auf ihrem Computer bereitstellen.
  • Bekämpfe das Werkzeug nicht: Zugang hat eine bestimmte Art, Dinge zu tun. Verwenden Sie einfach die verfügbaren Tools, ohne Code zu verwenden, bis Sie die Möglichkeiten der RAD-Umgebung ausgeschöpft haben. Sie werden überrascht sein, wie viel Sie ohne Code überhaupt erreichen können.
  • Nichts hält Sie davon ab, OOP zu verwenden: Definieren Sie Klassen und binden Sie Ihre Klassen manuell an Ihre Formulare, steuern Sie Datenaktualisierungen usw. Das Standardverhalten in Access fördert die schnelle Entwicklung und ist für kleine Projekte geeignet, aber wenn Sie das vermuten Ihr Projekt könnte wachsen, für die Zukunft planen, so wie Sie es mit jedem anderen Framework tun würden.

Zugriff als Backend-Datenbank

Wenn Sie nun ein Front-End verwenden möchten, das in etwas anderes geschrieben ist, etwa C #, ist es ziemlich einfach, Jet / ACE-Treiber zu verwenden, um eine Verbindung zu einer Access-Backend-Datenbank herzustellen.

  • Jet ist der ältere Treiber für Access und unterstützt nur .mdb -Dateien. 32-Bit-Treiber sind standardmäßig in Windows installiert (immer noch in Win8) und sind immer zuverlässig.
  • ACE ist das neue .accdb Format, das von Access2007 / 2010/2013 verwendet wird. Es hat Grenzen und Verbesserungen gegenüber der älteren Version erhöht, aber es kann immer noch mit .mdb sprechen.
    Sie müssen die Microsoft Datenbank-Engine auf allen Clients installieren (bei Bedarf auch nicht erforderlich) eine Vollversion oder die Runtime von Access 2007/2010/2013 ist bereits installiert).
  • Versuchen Sie nicht, 64-Bit-Versionen des Access / ACE-Treibers zu verwenden. Es ist die Zukunft, aber es bringt viele neue Probleme mit sich, besonders wenn Sie Bibliotheken von Drittanbietern verwenden oder einige Ihrer Clients 32-Bit-Office installiert haben (Sie können 32-Bit- und 64-Bit-Office-Komponenten nicht kombinieren) Ebenso sollten Sie Ihre C ++ / C # / Java / Python-Frontend-App nicht im 64-Bit-Modus erstellen und erwarten, dass der 32-Bit-ACE-Treiber funktioniert. Halten Sie alles in 32 Bit, machen Sie die Dinge arbeiten, dann testen Sie 64-Bit-Versionen, wenn Sie wirklich brauchen.
  • Halten Sie immer mindestens eine einzige Verbindung für die Back-End-Datenbank von Ihrem Code aus, wie oben erwähnt.
  • Versuchen Sie im Idealfall, jeden Access-spezifischen Code zu abstrahieren, um es später einfacher zu machen, wenn Sie zu einer serverbasierten Datenbank wechseln müssen. Sie könnten ein ORM verwenden, das transparent mit verschiedenen Back-Ends kommunizieren kann, oder Sie könnten Ihre SQL-Abfragen zumindest in Ressourcendateien oder separate Objekte aufteilen, die später leicht ersetzt werden können.
  • Abhängig von der Auslastung (meist, wie viele Daten in der Datenbank geändert werden müssen) kann ein Access-Back-End mühelos zwischen 20 und 100 Benutzern ohne Probleme unterbringen. Die Dinge werden sich verschlechtern, wenn viele Einfügungen und Aktualisierungen die ganze Zeit auftreten. Es gibt viele Tricks, die verwendet werden können, um Dinge besser zu machen und Access-Skalierung gut zu machen, aber Sie sind von Natur aus durch die Art der Anwendung eingeschränkt, die Sie erstellen und wie Benutzer auf ihre Daten zugreifen.
Renaud Bompuis 18.06.2011, 01:05
quelle