Access - équivalent RechercheV dans deux tables - deux critères

Ari29 Messages postés 3 Statut Membre -  
eljojo_e Messages postés 1255 Statut Membre -
Bonjour,

Je suis actuellement employé dans une société et j'ai créé une BDD Access.
Ma première table est lié à un classeur Excel, c'est indispensable.

Elle contient des informations produit et des prix, mais avec différents fournisseurs.
Ex:
TablePrix
Produit1 - Fournisseur1 - Prix1
Produit1 - Fournisseur2 - Prix2

J'ai une autre table qui est tout à fait classique dans laquelle j'ai les même informations, sauf les prix.

Ex: TableRecap
Produit1 - Fournisseur1 - ?
Produit1 - Fournisseur2 - ?

Je voudrais que TableRecap aille chercher le prix dans TablePrix en fonction du modele ET du fournisseur.

Sous Excel je saurais le faire, je définis une "TablePrix" avec pour première colonne "ProduitFournisseur" = Produit&Fournisseur et alors
Prix1= RechercheV(Produit1&Fournisseur1;TablePrix;Prix;faux)

Mais sous Access... Je ne sais pas.

J'ai très peu pratiqué de Macro, seulement sur VBA.

J'ai vu qu'il y avait la fonction RechDom (ou DLookUp) mais pas moyen d'y arriver (même sans ce problème de double critère).

Croyez-vous pouvoir m'aider?

Merci d'avance,

1 réponse

  1. eljojo_e Messages postés 1255 Statut Membre 155
     
    Bonjour,

    Dlookup est la formule qui correspond le mieux à recherchev.


    'Dlookup avec du texte
    a = Dlookup("[Champ]", "[NomDeTaTable]", "[Type]='Suivi 1'")
    '[Champ] = ton champ recherché
    '[NomDeTaTable] = nom de ta table où tu veux rechecher
    'le troisième est le critère

    'Dlookup avec 2 critère
    'Renvoi la valeur "-1" si les deux paramètre sont vrai
    c = Dlookup("[Champ1] And [Champ2]", "[Table]", "[Table].[Champ1] = " & b & "And [Table].[Champ2] = ""1""")
    If Not IsNull(c) Then 'Pour faire des test


    Ces codes fonctionnent. Dis moi si tu as des soucis de mise en place.

    Cordialement,

    Mesurer la masse de sa connerie permettrait dans connaitre sa gravité ;)
    0
    1. Ari29 Messages postés 3 Statut Membre
       
      Bonjour elijoj_e,

      Merci pour ta réponse.

      J'ai essayé mais je n'y arrive pas.

      Dans l'idée ça devrait faire:

      Sub RecherchePrix()

      'Renvoi la valeur "-1" si les deux paramètre sont vrai

      c = Dlookup("[Produit] And [Fournisseur]", "[TableRecap]", "[TablePrix].[Produit] = " & b & "And [TablePrix].[Fournisseur] = ""1""")
      If Not IsNull(c) Then 'Pour faire des test


      ?

      Désolé ça n'est vraiment pas très clair pour moi..

      Merci en tout cas
      0
      1. eljojo_e Messages postés 1255 Statut Membre 155 > Ari29 Messages postés 3 Statut Membre
         
        Le dlookup ne peux pas donner 2 résultat. Il peux faire une recherche avec un seul résultat.

        Dis nous exactement ce que tu veux faire
        0
    2. Ari29 Messages postés 3 Statut Membre
       
      Il faudrait que ma fonction aille chercher le Prix dans la 2eme table si le nom de produit ET le nom de fournisseur correspondent.

      Dis moi si je ne suis pas assez clair

      Merci
      0
      1. eljojo_e Messages postés 1255 Statut Membre 155 > Ari29 Messages postés 3 Statut Membre
         
        Bonjour,

        essaye un truc comme ca. Si tu y arrive pas, tu ppeux faire passer une copie de ta base ?

        a = ton nom de produit cherché
        b= le nom du fournisseur correspondant
        c = Dlookup("[Prix]", "[TableRecap]", "[TableRecap].[Produit] = " & a & "And [TableRecap].[Fournisseur] = " & b & ")
        0