Bonjour,
J'ai une table (tblFrmctrl) qui me sert à stocker la traduction de différentes string dans différentes langues.
Les champs 1 et 2 correspondent, respectivement, au nom du formulaire et au nom du contrôle qui contiennent la string. Celle-ci est placée dans le champ 3 (pour la langue 1), le champ 4 (pour la langue 2), etc...
Ca fonctionne très bien.
Du coup je me disais qu'il serait peut être possible d'utiliser ce système pour alimenter une MsgBox via un Dlookup qui retrouve la chaîne de caractère que je veux dans la langue désirée.
Quand j'utilise la variable strMsg dans le DLookup, comme résultat, il m'affiche le nom du champ correspondant à (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 strMsg = Chr(34) & "[" & oRstTrad.Fields(1 + IdLangue).Name & "]" & Chr(34) MsgBox DLookup(strMsg, "tblFrmctrl", "[FrmName] ='msg' And [CtrlName] ='msg1'") & _ vbCrLf & _ DLookup(strMsg, "tblFrmctrl", "[FrmName] ='msg' And [CtrlName] ='msg2'"), _ vbInformation, _ DLookup(strMsg, "tblFrmctrl", "[FrmName] ='msg' And [CtrlName] ='msg3'")) alors que j'attends le contenu adéquat répondant aux critères.
Code : Sélectionner tout - Visualiser dans une fenêtre à part oRstTrad.Fields(1 + IdLangue).Name
Ca ne fonctionne bien que lorsque je code en dur le nom du champ (par exemple: "[1FR]") à la place de la variable strMsg.
Je me suis arraché les cheveux là-dessus un certain temps pour essayer de comprendre pourquoi... sans solution... Je ne crois pas faire d'erreur dans la syntaxe du DLookup...
Par ailleurs, je suis aussi en train d'examiner la possibilité de créer des MsgBox personnalisées comme alternative à ce soucis (via des tutos du forum).
Avez-vous une idée du pourquoi de ce comportement du DLookup?
Je vous souhaite une bonne fin de journée et lirai avec intérêt vos suggestions
Partager