IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

DLookup qui ne retourne pas ce que j'attends [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut DLookup qui ne retourne pas ce que j'attends
    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.

    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'")
    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
    oRstTrad.Fields(1 + IdLangue).Name
    ) alors que j'attends le contenu adéquat répondant aux critères.

    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

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 181
    Points : 5 512
    Points
    5 512
    Par défaut
    Bonjour,

    En fait les Chr(34) sont de trop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strMsg = "[" & oRstTrad.Fields(1 + IdLangue).Name & "]"
    Cordialement.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut MsgBox Multilingues
    Bonjour EricDgn!

    Quelle belle journée nous avons aujourd'hui!! Plein de soleil et une solution toute simple!!

    Un grand merci pour ton aide. Ça fonctionne très bien et me permet de réaliser des MsgBox Multilingues rapidement

    Cordialement
    Yves

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2016] update qui ne fait pas ce que j'attends
    Par StringBuilder dans le forum Développement
    Réponses: 1
    Dernier message: 08/08/2017, 14h49
  2. DISTINCT qui ne fait pas ce que j'attends.
    Par benoitB dans le forum MySQL
    Réponses: 7
    Dernier message: 10/08/2015, 19h21
  3. dlookup qui ne retourne pas l'heure ?
    Par robyseb dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/10/2011, 04h12
  4. Requete SQL qui ne retourne rien alors que ma table n est pas vide
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/06/2009, 19h16
  5. Réponses: 7
    Dernier message: 10/05/2007, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo