Bonjour,
Première demande spécifique de ma part! Je suis un développeur Access d'excellent niveau mais là je nage dans la purée!
J'ai créé une application bilingue à 100%. Au chargement de mes formulaires je fais appel à une fonction appelé ChangerLangue() à laquelle je passe le nom du formulaire (Me.Name). Je passe en revue tous les contrôles du formulaire afin de changer la valeur du ".Caption".
Mon problème survient avec un sous-formulaire. Le nom du sous-formulaire ne dit rien à ma fonction. Et si j'essais de faire un "Set frm = Forms(MyForm)" d'une chaîne désignant un formulaire et un sous-formulaire et bien ça génère une erreur. Incompatibilité de type.
Voici ma fonction. pLangue est une variable globale initialisée au démarrage en fonction de l'utilisateur (français = true, anglais = false)
Merci de votre aide. Je donnerai plus de détails s'ils s'avèrent nécessaires. JM
ChangerLangue(ByVal MyForm As Variant)
Dim frm As Form
Dim Ctrl As Control
Dim strnom As String
Set frm = Forms(MyForm)
For Each Ctrl In frm.Controls
Select Case Ctrl.ControlType
Case acCommandButton, acLabel, acPage
strnom = Nz(DLookup(IIf(pLangue = True, "[Francais]", "[Anglais]"), _
"Libelle", _
"[NomControle] =""" & Ctrl.Name & """ AND [NomFormEtat] ='" & frm.Name & "'"), "")
Ctrl.Caption = strnom
End Select
Next Ctrl
End Function
Partager