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

Fermé
Ari29 Messages postés 3 Date d'inscription vendredi 12 février 2016 Statut Membre Dernière intervention 12 février 2016 - Modifié par Ari29 le 12/02/2016 à 13:22
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 - 12 févr. 2016 à 15:54
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

eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153
Modifié par eljojo_e le 12/02/2016 à 14:54
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
Ari29 Messages postés 3 Date d'inscription vendredi 12 février 2016 Statut Membre Dernière intervention 12 février 2016
12 févr. 2016 à 15:19
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
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153 > Ari29 Messages postés 3 Date d'inscription vendredi 12 février 2016 Statut Membre Dernière intervention 12 février 2016
12 févr. 2016 à 15:27
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
Ari29 Messages postés 3 Date d'inscription vendredi 12 février 2016 Statut Membre Dernière intervention 12 février 2016
12 févr. 2016 à 15:35
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
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153 > Ari29 Messages postés 3 Date d'inscription vendredi 12 février 2016 Statut Membre Dernière intervention 12 février 2016
Modifié par eljojo_e le 12/02/2016 à 15:54
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