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

Ari29 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
eljojo_e Messages postés 1155 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   154
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   154 > Ari29 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   154 > Ari29 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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