Transaktionen

By , 27. September 2008

Man stelle sich folgendes Szenario vor:
Sie möchten einen Wareneingang verbuchen und danach einen neuen Einkaufs- und Verkaufspreis berechnen. Dazu müssen Sie 2 Datenbankoperationen durchführen. Sie verbuchen die Ware ins Lager und wollen den Einkaufs- und Verkaufspreis in der Artikeltabelle aktualisieren. Wenn bei der zweiten Operation ein Fehler auftaucht, wird zwar der Wareneingang verbucht, aber Einkaufs- und Verkaufspreis werden nicht in die Tabelle geschrieben. Durch solche Vorgänge ist es leicht möglich dass Tabellen inkonsistent werden.

Tritt also nun bei der zweiten Operation ein Fehler auf und eine Fehlerbehandlung greift, so sind Änderungen der ersten Operation bereits geschrieben. Jetzt müssten Sie eine Methode zur Hand haben, mit der sie alle vorherigen und zusammenhängenden Operationen einfach rückgängig machen könnten. In der Fachsprache wird dieser Vorgang ein Rollback genannt. Und diese Methode bietet uns Access in der Form von Transaktionen.

Microsoft Access bzw. die Jet-Engine stellt dafür zumindest schon seit Access 97 ein leistungsstarkes Transaktionenmodel mit entsprechenden Methoden zur Verfügung. Eine Transaktion hat folgende Methoden:

  • BeginTrans
  • CommitTrans
  • Rollback

Read more »

Regelmäßiger Datenimport realisieren

By , 26. September 2008

Importieren Sie regelmäßig Daten, z.B. von externen Mitarbeitern, so müssen Sie diese i.d.R. zuerst aufbereiten, d.h. mit dem vorhandenem Datenstamm abgleichen. Dazu empfiehlt sich die Daten in eine separate Hilfstabelle zu importieren, diese dann zu bearbeiten und dann erst zu den Stammdaten hinzuzufügen. Sie werden aber bald feststellen, dass dieses ständige importieren und wieder leeren der Hilfstabelle die Anwendung bzw. das Backend schnell anwachsen lässt.

D.H. der Administrator oder sonstig Verantwortliche muss regelmäßig das Backend anfassen und Komprimieren. Dabei muss er peinlich genau darauf achten, dass alle Mitarbeiter ihre Anwendung geschlossen halten. Eigentlich ein Unding, und bei einem 7×24 Stunden Betrieb sogut wie unmöglich.

Die Lösung aus der Misere ist, das Importieren und Aufbereiten außerhalb des Backends zu tätigen und dann erst die aufbereiteten Daten in das Backend einfügen, und das ganze soll natürlich auch automatisiert ablaufen. Dazu ist folgender Ablauf sinnvoll:

  • temporäre Datenbank im Ordner des Backends erstellen
  • Tabelle in temporärer Datenbank erstellen
  • Daten in Tabelle schreiben
  • Daten aufbereiten
  • Daten in das Arbeits-Backend übernehmen

Read more »

Entwurf von Algorithmen

By , 23. September 2008

Im Laufe des Entwicklungsprozesses einer Access-Anwendung, hat der Entwickler eine Fülle an kleinen, funktionell abgegrenzbaren Aufgabenstellungen zu bewältigen. Der Kunde gibt vor, welche Funktionalitäten bzw. Abläufe die Anwendung abbilden muss. Im besten Falle hat er das noch schriftlich und sogar mit einem dezidierten Ablaufplan. Dem Entwickler seine Aufgabe ist es dabei, aus mündlichen Angaben, E-Mails, Telefax, eigenen Aufzeichnungen, Pflichtenhefte oder aus eigener Erfahrung Code-Algorithmen zu entwerfen und in VBA-Codezeilen niederzuschreiben. Dieser Artikel gibt Auskunft über die notwendigen Techniken und Methoden die ein Entwickler kennen muss um dabei effektiv vorzugehen.

Man unterscheidet zwischen Entwurfsprinzipien und Entwurfstechniken. Erstere sind als allgemeingültig und anerkannt zu betrachten. Entwurfsprinzipien sind universell anwendbar. Hingegen Entwurfstechniken im speziellen anwendbare Techniken und Vorgehensweisen darstellen.

Die 3 wichtigsten Entwurfsprinzipien:

  • schrittweise Verfeinerung
  • Modularisierung
  • Strukturierung

Das erstere Entwurfsprinzip halte ich für Entwickeln von Access-Anwendung als das brauchbarste, da die beiden anderen beiden auf große bis sehr große Softwareprojekte abzielen. Im nachfolgenden werde ich auf die schrittweise Verfeinerung eingehen und die beiden anderen Prinzipien außer acht lassen.
Read more »

2 Jahre AccessBlog.de

By , 20. September 2008

Im September 2006 startete ich das Projekt AccessBlog. Seit dem hat sich vieles getan. Office 2007 hat uns mehr oder weniger beglückt, Windows Vista löste Windows XP ab, eine neue Version 2008 des MS-SQLServer sowie VisualStudio 2008 kam auf den Markt.
Gab es noch was wichtiges? Ach ja, Anfang 2007 wagte ich den Schritt in die Selbstständigkeit als Software-Entwickler.

Blicken wir mal zurück auf den 8. September 2006. Mein erster Blogbeitrag: Start des neuen Blogs
Damals habe ich versprochen dass ich über Themen der Access-Anwendungsentwicklung bloggen werde. Nun, überzeugt euch selbst, ich denke dieses Versprechen wurde weitgehend eingehalten.

Zwischenzeitliche Abschweife in andere Themen, die mich zu der Zeit beschäftigten, wie z.B. der Einsatz von Camtasia Studio, hielten aber nicht davon ab sich verstärkt dem Kernthema zu widmen.

2 Jahre AccessBlog – eigentlich nur eine Zahl, kein Grund zum Ausruhen. Sehen wir in 3 Jahren zum 5-Jährigen noch mal danach was sich im AccessBlog tut.

Andreas Vogt

Formatierte Word-Ausgabe

By , 17. September 2008

Um z.B. Rechnungen oder Lieferscheine zu erstellen und an den Kunden Weiterzugeben eignet sich nicht immer ein Access Bericht, vorallem dann nicht wenn die Weitergabe elektronisch in Form von einer E-Mail erfolgt.
Aus meiner Praxis hat sich als beste Methode herausgestellt, eine seprarate Word-Vorlage zu erstellen. Darin fügt man Textmarken ein, z.B. eine für den Kopf und in der Zeile darunter eine für die Angebotspositionen. Nur 2 Textmarkten? Genau, denn der Trick an der Sache ist, dass ich in der Zeile mit der Textmarke für die Angebotspositionen feste Tabulatoren einsetze:

Man benötigt die Tabulatoren z.B. für lfd.Nr, Artikelnummer, Menge + Einheit, Artikeltext, Euro-Zeichen und Preis. Beachtet wie rum die Tabulatoren gerichtet sind. Um z.B. bei den Preisen Komma und Tausender-Punkt untereinander zu haben muss man den Preis rechts ausrichten.
Read more »

Mehrsprachigkeit die 3.

By , 16. September 2008

Im letzten Teil der Serie geht es nun darum wie man in der Praxis die Mehrsprachigkeit realisiert. In der Regel ist es so, dass man zuerst die Formulare und Berichte ganz normal in Deutscher Sprache erstellt.
Um nun die Sprachcodes zu handhaben kann man mit einem Blatt Papier anfangen und Code mit Sprache als Liste aufschreiben. Oder man macht das z.B. in Excel. Wichtig bei dieser Sache ist, dass der Sprachcode fortlaufend ist und dass keine doppelten Codes vorhanden sind.
Hat man alle Deutschen Texte und Sprachcodes erfasst, ändert man nun im Formular/Bericht die Beschriftungen bzw. ControlTipText ab.
OK, das ist mir persönlich zu mühselig, und ich habe daher kurzerhand eine Funktion erstellt, die das automatisch für mich macht.
Read more »

Mehrsprachigkeit die 2.

By , 13. September 2008

Im 2. Teil des Artikels befasse ich mich mit Wertelisten in Kombinationsfeldern und Listenfeldern. Außerdem gibt es bei diesem Thema noch ein paar Fallen, die es zu entschärfern gilt.

Wertelisten sind 1 bis n-Spaltig, wobei man nicht zuviel Spalten verwenden sollte. Der Aufbau einer 2-Spaltigen Werteliste mit Spaltenüberschriften ist wie folgt:
‚Überschrift1′;’Überschrift2′;’Wert1_Spalte1′;’Wert1_Spalte2′;’Wert2_Spalte2‘; usw.

Der Ablauf ist wie folgt. Man erstellt ein Kombinationsfeld bzw. Listenfeld und gibt im Dialog an selbst Werte einzutragen (Werteliste). Dann trägt man die codierten Textnummern in das Eingabefeld ein. In den Eigenschaften betrachtet sieht das z.B. wie folgt aus:


Read more »

Entwickeln mehrsprachiger Anwendungen

By , 12. September 2008

Dieser Beitrag zeigt, wie Sie mehrsprachige Anwendungen realisieren können. Das Thema ist sehr komplex und es gibt mehrere Ansätze zur Realisierung. Ein Königsweg gibt es nicht, ich zeige Ihnen aber ein Weg, den ich für Praktikabel halte.
Zu Beginn muss man sich die Frage stellen, wie weit treibt man die Mehrsprachigkeit.
Man unterscheidet dabei grundsätzlich zwischen der mehrsprachigen Benutzeroberfläche und den mehrsprachigen Inhalte der Tabellen. letzteres ist besonders aufwendig zu realisieren, und nur mit großem Aufwand zu bewältigen. In diesem Beitrag beschränke ich mich nur auf die Benutzeroberfläche.

Die Objekte, die ein Benutzer zu Gesicht bekommt, sind Formulare und Berichte. Dabei muss noch zwischen Sprachanpassung auf Steuerelement-Ebene und auf Code-Ebene unterschieden werden.

Bei Steuerelementen:
Befehlschaltfläche => Eigenschaften Beschriftung sowie SteuerelementTip-Text
Bezeichnungsfeld => Eigenschaften Beschriftung sowie SteuerelementTip-Text
Umschaltfläche => Eigenschaften Beschriftung sowie SteuerelementTip-Text
Registerseite => Eigenschaften Beschriftung sowie SteuerelementTip-Text
Kombinationsfeld => Inhalte von Wertelisten
Listenfeld => Inhalte von Wertelisten

Bei VBA-Code:
Msgbox => Inhalte vom Text und Titel
Fehlermeldungen => individuelle Fehlertexte in Fehlerprotokollierung
Read more »

DatePicker selbstgemacht

By , 6. September 2008

Zur Auswahl eines Datums ist das DateTime Picker Control sehr gut geeignet – will man jedoch die Datenbank an den Kunden weitergeben hakt es meistens an dem ActiveX Control. Daher sollte man mit ActiveX Steuerelementen sparsam umgehen, und wenn möglich ganz darauf verzichten. Dieser Beitrag beschreibt wie man ein professionelles DatePicker Steuerelement selbst mit Access-Bordmitteln erstellt.

Zuerst benötigen wir ein Formular, das als DatePicker dient. Wir wollen ja uns streng am Orginal Orientieren, also benötigen wer zuerst ein Bezeichnungsfeld 0,8 x 4,2 cm, und Hintergrundfarbe 14215660, Rahmen Flach und Transparent. In diesem „Kopfbereich“ plazieren wird links und rechts 2 kleine Buttons, namens „Vor“ und „Zurueck“, und wählen als Bild „gehe zum nächsten2“ sowie „gehe zum vorherigen2“ aus. Dazwischen plazieren wir ein Bezeichnisfeld mit Namen „MonatJahr“, das Monat und Jahr anzeigen soll.
Hier mal eine kleine Vorschau auf den fertigen DatePicker:

DatePicker
Read more »

OfficeFolders theme by Themocracy