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

IHM Discussion :

remplacer dlookup par un recordset [AC-2003]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut remplacer dlookup par un recordset
    bonjour,

    une petite question peut on remplacer un dlookup par un recordset sachant que comme critere je n'ai que réfproduit?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomduproduit = DLookup("[NomProduit]", "Produits", "[réfProduit]= RéfProduit.Value")

  2. #2
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Points : 360
    Points
    360
    Par défaut
    On peut ouvrir un Recordset avec les mêmes critères que DLookup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim recX as recordsset
    Set rec = currentdb.openrecordset("SELECT NomProduit FROM Produits WHERE RéfProduit=" & cstr(RéfProduit.Value),dbOpenDynaset)
    Comme je vous l'avais signalé sur l'autre fil, il me semble que que la syntaxe de votre DLookUp est fausse. "[réfProduit]= RéfProduit.Value" ne pointe pas vers la valeur du champ de formulaire RefProduit

    Cordialement,

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    bonjour,
    ma lignene pose pas de probleme,juste que je préfère avoir une autre option le cas écheant.
    j'ai essayé l'option du recordset mais pas de résultat positif j'ai un probleme avec cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cstr(RéfProduit.Value)
    merci

  4. #4
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Points : 360
    Points
    360
    Par défaut
    Si RéfProduit ou RefProduit est un champ de votre formulaire ou vous saisissez le code produit,et que le code est bien exécuté depuis votre formulaire, votre recordset devrait contenir un champ (NomProduit) et une ligne.

    Maintenant, ce que vous voulez faire de ce recordset...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    je ne saisi pas la valeur du réfproduit dans mon formulaire,qand je vais chercher le nom du produit le champ réfproduit se remplit automatiquement.

  6. #6
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Points : 360
    Points
    360
    Par défaut
    Citation Envoyé par chuspyto Voir le message
    je ne saisi pas la valeur du réfproduit dans mon formulaire,qand je vais chercher le nom du produit le champ réfproduit se remplit automatiquement.
    Bon ok, le RéfProduit est bien rempli. Quel est le problème avec cstr(RefProduit.value) ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    bonjour,

    il me donne une erreur disant "qualificateur incorrect"

  8. #8
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Points : 360
    Points
    360
    Par défaut
    Depuis quel procédure appelez vous nomduproduit = DLookup.... ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    mon dlookup se trouve dans une procedure public fonction

  10. #10
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    Bonjour Chuspyto, Pepito,
    Je me permet de m'immiscer dans cette discussion afin de signaler une petite erreur il me semble.

    Soit la référence est de type string (ce qui devrait normalement être le cas, on évite les références numérique généralement) et dans ce cas il ne faut pas oublier les quotes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set rec = currentdb.openrecordset("SELECT NomProduit FROM Produits WHERE RéfProduit='" & cstr(RéfProduit.Value) & "'" ,dbOpenDynaset) 
     
     
     
    DLookup("[NomProduit]", "Produits", "[réfProduit]= '" & cstr(RéfProduit).Value & "'")


    Soit les références sont numériques, et dans ce cas on enlève la fonction cstr(), voir même la remplacer par la fonction val()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set rec = currentdb.openrecordset("SELECT NomProduit FROM Produits WHERE RéfProduit=" & val(RéfProduit.Value)  ,dbOpenDynaset) 
     
     
     
    DLookup("[NomProduit]", "Produits", "[réfProduit]= " & val(RéfProduit).Value)

    Personnellement même en cas de chaine j'essaye de dimensionner correctement mes champs pour avoir des strings dès le départ et je n'ai donc pas besoin de la fonction cstr (Peut-être est-ce un tort mais bon....)

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    en prenant cette option car j'ai bien une valeur numérique j'ai toujours la meme erreur(qualificateur incorrect)quelque soit la ligne!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set rec = currentdb.openrecordset("SELECT NomProduit FROM Produits WHERE RéfProduit=" & val(RéfProduit.Value)  ,dbOpenDynaset) 
     
     
     
    DLookup("[NomProduit]", "Produits", "[réfProduit]= " & val(RéfProduit).Value)

  12. #12
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    Et si on corrige mon erreur de frappe (ou de copier-coller, va savoir)?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DLookup("[NomProduit]", "Produits", "[réfProduit]= " & val(RéfProduit.Value))
    (la parenthèse)

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    désolé cela ne marche pas non plus (qualificateur incorrect)
    par contre cela fonctionne.
    est ce que cela peut etre stable??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nomduproduit = DLookup("[NomProduit]", "Produits", "[réfProduit]= Val(RéfProduit.Value)")

  14. #14
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut

    Pour tout te dire je ne comprend même pas comment cela peut fonctionner ....

    C'est quoi le RéfProduit du RéfProduit.Value ?
    C'est pas un contrôle formulaire?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    le réfproduit est une zone texte qui se trouve sur un formulaire ,et dans la table il a une valeur auto numerique .sa valeur est rattachée automatiquement des creation d'un nouveau produit,et s'affiche également automatiquement des saisie du produit concerné.

  16. #16
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Points : 360
    Points
    360
    Par défaut
    Citation Envoyé par Flyoss Voir le message

    Pour tout te dire je ne comprend même pas comment cela peut fonctionner ....
    Je crois que cela peut fonctionner car dans l'expression "[réfProduit]= Val(RéfProduit.Value)", Access interprète le RefProduit.Value comme un champ de table. En gros RefProduit=RefProduit, cela "fonctionne" car c'est toujours vrai , mais est-ce que cela "fonctionne" au point de toujours donner le résultat escompté.

    Tant qu'on y est, quand l'erreur se produit, vous pouvez taper dans la fenêtre de Debogage (CTRL+G)
    et nous communiquer le résultat.

    De plus, on ne sait toujours pas où est cette fonction. Il se peut qu'elle soit dans un sous formulaire X et que le textbox RéfValue soit dans le formulaire principal Y, ou même qu'elle soit dans un module indépendant.

    Comment cette fonction est appelée ?
    Dans quel évènement ?
    A quel moment (création d'enregistrement, modification...)
    Est-ce qu'il existe des formulaires / sous-formulaires ?

    Quel est le but final recherché avec le plus de précisions possibles (description des fenêtres, est-ce que cela doit afficher quelque chose,...)!

    PS : La question sur le but final vous a déjà été posé http://www.developpez.net/forums/d12...lecture-table/

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

Discussions similaires

  1. [AC-2010] Remplacer DAO par ADO pour les recordset des formulaires
    Par talere dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/01/2012, 13h30
  2. Recordset pour remplacer DLookup
    Par B-CAB dans le forum VBA Access
    Réponses: 10
    Dernier message: 18/06/2010, 12h24
  3. Remplacer Dlookup par une requete SQL
    Par nbouseem dans le forum IHM
    Réponses: 9
    Dernier message: 09/06/2006, 16h45
  4. Réponses: 2
    Dernier message: 13/01/2005, 12h37
  5. [ASP] include remplacer chemin par variable
    Par damn dans le forum ASP
    Réponses: 3
    Dernier message: 01/10/2004, 15h27

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