Kontakt-Formular   Inhaltsverzeichnis   Druckansicht  

VisualBasic.tips

Startseite > Microsoft Access VBA > Mehrsprachigkeit

Mehrsprachigkeit

  • Man erstellst eine Funktion, die beim "Öffnen" des Formulars aufgerufen wird, als Parameter wird die "Referenz" auf das Formular übergeben.
Private Sub Form_Open(Cancel As Integer)
   SetLang Me
End Sub
  • In dieser Funktion "schleift" man mit "For Each" durch jedes Steuerelement...
  • Bei jedem Steuerelement wird die "ControlType"-Eigenschaft geprüft.
  • Je nach Typ verfährst du weiter:
    z.B. ist es ein "Label", dann kannst du die Sprache ermitteln und setzen.
    Ist es aber ein "Unterformular", rufst du dieselbe Funktion rekursiv auf; mit der Referenz auf das Formular, welches dem Unterformular zugrunde liegt ( SetLang ctr.Form ).
Public Function SetLang(ByVal myForm As Form) As Integer
   Dim res As Integer
   res = 0
   Dim ctr As Control
   For Each ctr In myForm
      Debug.Print ctr.Name & ": " & ctr.ControlType
      Select Case ctr.ControlType
         Case 100 '*Label
            ctr.Caption = Translate(myForm.Name & "." & ctr.Name)
         Case 112 '*Unterformular
            SetLang ctr.Form
      End Select
    Next
   SetLang = res
End Function
 
Public Function Translate(ByVal key As String) As String
   Dim res As String
   res = key
   '***** eigenen Code zur Übersetzung implementieren ***
   res = "to be translated"
   '* übersetzten Begriff zurückegeben
   Translate = res
End Function
Seitenanfang