![]() |
||
![]() |
Mehrsprachige Datenbank entwickelnSie möchten eine Access-Anwendung als deutsche und englische Version entwickeln, dabei aber nicht zwei separate Anwendungen getrennt pflegen. Deshalb soll nur eine einzige Anwendung beide Sprachversionen vereinen. Die folgende Lösung arbeitet mit zwei Tabellen und einer VBA-Prozedur. Die Beispiel-Datenbank zum Tipp finden Sie zusammen mit den Listings auf der Heft-CD unter CHIP-Code Tipps. Public Function getText strKey As String) As StringDiese Prozedur können Sie in einem beliebigen Modul definieren. Sie arbeitet mit einem Recordset und zwei Datenbankzugriffen via SQL. Der erste SQL-Befehl kopiert die in »tblConfig« eingetragene Sprache – zum Beispiel »Deutsch« – in die Variable »strLanguage«. Der zweite SQL-Befehl greift auf Basis dieser Variable auf die entsprechende Spalte und über das Feld »KEY« auf die entsprechende Zeile der Tabelle »tblTexte« zu. Dabei muss der Inhalt von »KEY« dem an »getText()« übergebenen Parameter »strKey« entsprechen. Mit »getText = rst.Fields(0).Value« liest die Prozedur den Inhalt des Recordsets aus. Wenn die Datenbank-Anwendung einen Text anzeigen oder ausgeben soll, übergibt sie den eindeutigen Schlüssel des Textes an die Prozedur »getText()«. Diese Funktion liefert dann den entsprechenden Text in der aktivierten Sprache zurück. Damit sich Ihre Formulare automatisch anpassen, füllen Sie in der Ereignisprozedur »Beim Öffnen« alle enthaltenen Textelemente mit den zugehörigen Inhalten. Der Befehl, der dem Tipp-Text der Kombinationsbox »cboKombinationsbox« in der Ereignisprozedur »Beim Öffnen« seinen tatsächlichen Text zuweist, sieht folgendermaßen aus: Me.cboKombinationsbox.ControlTipText = getText(“FRM_DEMO.CBO_KOMBINATIONSBOX.CONTROLTIPTEXTö)Diese Lösung ist völlig flexibel. Wenn Sie zusätzlich noch eine französische Version bereitstellen möchten, müssen Sie nur die Tabelle »tblTexte« um eine Spalte »Französisch« erweitern, die verschiedenen Datensätze der Tabelle entsprechend aktualisieren und in das Feld »Sprache« der Tabelle »tblConfig« den Text »Französisch« eintragen. ! Achtung: Diese Lösung hat keinen Einfluss auf Standardobjekte von Windows und Access wie Dialoge zum Öffnen und Speichern oder die Schaltflächen »Ja« und »Nein« des Befehls »MsgBox«. |
![]() |