Alle Verbesserungen und Erweiterungen die wir im Laufe eines Jahres zusammengetragen haben sind in...
Die Lenkerempfindlichkeit wird jetzt je nach Geschwindigkeit korregiert
Wenn ein Frontend mehrsprachig ausgestattet sein soll, steht man vor einer Reihe von Problemen. Alle Bezeichnungen, Tipptexte, Gültigkeitsmeldungen usw. müssen ersetzt werden. Ebenso MsgBoxen und Inputboxen angepasst werden.
Hier hilft das Addin. Steuerelemente aus Formularen und Reports, Inputboxen und MsgBoxen werden ausgelesen und in Tabellen gespeichert. Formulare und Module zur Steuerung erstellt und gegebenenfalls Aktualisierungen vorgenommen. Die Änderungen sind durch Kommentare im Quelltext markiert.
Auf dem Dialogformular können folgende Punkte angewählt werden:
Es werden in der Datenbank 4 Tabellen, 5 Formulare und 1 Modul erzeugt.
Hier werden die Sprachen abgelegt
ID = Eindeutige Nummer der Sprache
Sprache = Text der die Sprache beschreibt
Aktiv = Die aktivierte Sprache hat hier den Wert TRUE
Der Inhalt der Steuerelemente aus Formularen und Reports wird in dieser Tabelle gespeichert.
ID = Eindeutige Nummer des Datensatzes
SprachID = Sprache des Datensatzes
Steuerelementname = Name des Steuerelements
Beschriftung = Beschriftung des Steuerelements
TooltipText = Tiptext des Steuerelements
StatuszeilenText = Statuszeilentext des Steuerelements
Gueltigkeitsmeldung = Gültigkeitsmeldung des Steuerelements
Formularname = Der Formular- oder Berichtname in dem das Steuerelement liegt
ignorieren = Wenn der Wert auf TRUE steht, wird nicht übersetzt
Typ = Der Typ des Steuerelements
ObjektTyp = Formular oder Bericht
Die gefundenen Msg- und InputBoxen
ID = Eindeutige Nummer der Box
Position = Position im Code
Check = Zwischenspeicher beim Codedurchlauf
Typ = Msgbox = 1, InputBox = 2
Für die Übersetzungen der Boxen
ID = Eindeutige Nummer des Datensatzes
BoxID = Eindeutige Nummer der Box
Prompt = Inhalt von Prompt der Box
Title = Inhalt von Title der Box
HelpFile = Inhalt von HelpFile der Box
Sprache = Sprache des Datensatzes
Default = Inhalt von Default der Box
Das Hauptformular, in dem die erzeugten Datensätze editiert werden können
Die Unterformulare ggfrmSpracheDetails, ggfrmSpracheRptDetails, ggfrmSpracheBoxen und ggfrmSpracheInputBoxen beinhalten die Datensätze von Formularen, Reports, MsgBoxen und InputBoxen.
Das Modul mdlggMehrsprachigkeit beinhaltet alle Funktionen die zur Übersetzung zur Laufzeit erforderlich sind
Holt die in der Tabelle gespeicherte Sprache in die globale Variable lngLang
Speichert die aktuelle Sprache von lngLang in die Tabelle
Liefert den Typ eines Steuerelements als Text
Wird im Ereignis ?beim Öffnen? der Formulare aufgerufen und ersetzt dann alle Beschriftungen der Steuerelemente.
Auch beim Öffnen der Berichte werden die Steuerelemente gesetzt
Diese MsgBox holt sich mit der übergebenen ID die Beschriftungen der aktuellen Sprache aus der Tabelle. Sie kann jedoch auch ?normale? MsgBox-Aufrufe abarbeiten.
Diese Funktion ersetzt ebenfalls die eingebaute Funktion.
Aus allen Formularen und Reports werden die Eigenschaften Caption, Tooltip, Statusbar und Validation der Steuerelemente ausgelesen und der Inhalt in die Tabelle ggMehrsprachigkeittblBeschriftungen eingetragen. Dabei werden soviele Kopien angelegt, wie Sprachen in der Tabelle ggMehrsprachigkeittblSprache vorhanden sind. Wurden bereits Steuerelemente eingelesen, werden diese übersprungen. Jedoch werden Kopien ergänzt wenn weitere Sprachen oder Steuerelemente dazugekommen sind. Ebenfalls werden verwaiste Tabelleneinträge gelöscht, wenn das Steuerelement nicht mehr existiert.
Damit zur Laufzeit auch die Einträge in den Tabellen berücksichtigt werden sind die Funktionen FormBeschriftung() und ReportBeschriftung() vorhanden. Diese müssen im Ereignis ?Beim Öffnen? gestartet werden. Die Codezeile ?FormBeschriftung Me? wird automatisch in alle Formulare in das Ereignis eingetragen, bei den Reports passiert das mit ?ReportBeschriftung Me?. Natürlich werden keine doppelten Einträge erzeugt, sondern nur fehlende ergänzt.
Im Code wird nach Boxen gesucht und mit einer eindeutigen ID versehen. Variablen in den Boxen werden in ein Array aufgenommen und die Beschriftungen in die Tabelle ggMehrsprachigkeittblBoxTexte eingetragen. Auch hier wird pro Sprache eine Kopie erzeugt und verwaiste Datensätze gelöscht. Sollte im Code jedoch eine Box bereits eine ID besitzen und nicht in der Tabelle zu finden sein, wird lediglich eine Meldung ausgegeben.
In SQL-Strings in Steuerelementen können Kriterien wie [Formulare]![frmFormular]![Text13] stehen. Das Wort Formulare wird jedoch nur von einem deutschen Access richtig interpretiert. Darum werden in allen Abfragen diese Wörter durch die englischen Wörter ?Form?, ?Forms?, ?Report? und ?Reports? ersetzt.