Bonjour,
Je suis confrontée depuis quelques jours à un problème que je ne sais résoudre. J’aurais donc besoin de votre aide si vous avez quelques minutes à me consacrer.
Pour résumer, le problème est le suivant :
J’ai deux tables que je dois confronter. L’une contient les informations à propos des parcelles, l’autres celles des variétés. Je connais donc d’un côté le type de sol des parcelles (classé de A a E) et de l’autre côté je sais, pour chaque variété, le ou les types de sol sur lesquels je peux la planter. Voici donc les tableaux que j’ai :
Parcelle - Type de sol
11- A
34 - B
46 - C
98 - D
113 - E
Variété - Type de sol recommandé
CTC3 - A et B
CTC5 - A,B et C
CTC8 - A, B, C et D
CTC11 - B
SP4 - B et C
SP89 - B, C et D
SP90 - B, C, D et E
RB45 - C et D
RB56 - C, D et E
Je souhaiterais donc réaliser une requête qui me permet, pour chaque parcelle, de savoir quelles sont les variétés que je peux planter. Dans le cas de cet exemple, le résultat attendu est donc :
Parcelle -Type de sol -Variété - Type de sol recommandé
11- A- CTC3 - A et B
11- A- CTC5 - A,B et C
11- A- CTC8 - A, B, C et D
34 - B- CTC3 - A et B
34- B- CTC5 - A,B et C
34- B- CTC8 - A, B, C et D
34- B- CTC11- B
34- B- SP4 - B et C
34- B- SP89 - B, C et D
34- B- SP90 - B, C, D et E
46- C- CTC5 - A,B et C
46- C- CTC8 - A, B, C et D
46- C- SP4 - B et C
46- C- SP89 - B, C et D
46- C- SP90 - B, C, D et E
46- C- RB45 - C et D
46- C- RB56 - C, D et E
Etc.
Le premier problème que j’ai rencontré est pour choisir quel type de relation entre la table PARCELLE et la table VARIETES. Comme les données de VARIETE (ex : « A, B et C ») ne sont pas les mêmes que PARCELLE (« A »), lorsque je crée une requête, Access ne présente que les champs qui sont égaux aux deux tables. Dans le cas de l’exemple, il ne montre que la parcelle 34 avec la variété CTC 11.
J’ai essayé de séparer les informations de VARIETE en 5 colonnes :
Variété -Type de sol recommandé- A- B- C- D- E
CTC3 -A e B - - A- B- - - -
CTC5 -A,B e C - - A- B- - -
CTC8 -A, B, C e D- - A- B- - D- -
CTC11 -B - - - B- - - -
SP4 -B eC - - - B- - - -
SP89 -B, C e D - - - B- - D-
SP90 -B, C, D e E- - - B- C- D- E
RB45 -C e D - - - - C- D- -
RB56 -C, D e E - - - - C- D- E
Mais il faudrait faire une relation entre PARCELLE et chaque colonne, ce qui est impossible car il faudrait faire 5 relations entre les mêmes tables.
J’ai donc voulu faire 5 tables, une contenant toutes les variétés qui peuvent être plantées en sol A, une avec toutes les variétés qui peuvent être plantées en sol B, etc. Ici, le problème serait pour la suite de la création de la base de donnés. Les contrôles de mes formulaires devront alors actionner 5 requêtes. Je multiplie donc le poids de la base de donné et les erreurs possibles par 5.
La seule solution plausible serait de créer une requête (relation entre Type de sol de PARCELLE et Type de sol recommandé de VARIETE) avec un critère de sélection de type Like%%. Cependant, il persiste le problème premier : lorsque j’ouvre la requête, avant même d’insérer le contrôle Like, Access ne sélectionne que les champs identiques (parcelle 34 et CTC11). De plus, je ne parviens pas à écrire la formule pour qu’elle sélectionne les variétés qui contiennent la même lettre que Type de sol :
Ex : Je parviens à utiliser Like si je sais par avance quelle lettre doit contenir le mot : Like "*A*"
Pour sélectionner les champs qui contiennent la lettre du champ Type de sol (non connu par avance), j’ai essayé, sans succès : Like "* «Expr» [Parcelle]![Type de sol] «Expr» *"
Une « petite » complication est de savoir qu’en réalité il n’y a pas un seul facteur a confronté entre ces deux tables (type de sol) mais cinq. Les solutions que j’avais trouvées ne permettent pas la comparaison d’autres colonnes.
Pourriez-vous m’aider à résoudre ce problème. Je suis bloquée depuis quelques jours déjà et à cours d’idées.
Je vous remercie par avance pour l’aide que vous pourrez m’apporter.
Cordialement,
Claire
Partager