J'ai une table couleurs comportant dix couleurs (bleu, vert, rouge...)
J'ai une seconde table comportant un champ couleur, mais là le contenu
comporte une couleur avec d'autres mots (ex : PP21 ROUGE , BLEU352, PP11
NOIR...). Je cherche un moyen de faire ressortir le mot directeur de ce
champ à l'aide de ma première table
Exemple : PP21 ROUGE c'est ROUGE.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
The_Team
Il faut tout simplement créer un champ commun aux 2 tables, avec une relation de 1 à 1 ou de 1 à plusieurs selon le cas.
le champ commun peut être le champ couleur.
La Table 1 comportera donc se champ unique, la Table 2, ce champ plus un deuxième champ comportant la couleur plus autre chose.
Lucky_Team
http://www.access-developpement.com
"yann2" a écrit dans le message de news: %
Bonjour,
J'ai une table couleurs comportant dix couleurs (bleu, vert, rouge...)
J'ai une seconde table comportant un champ couleur, mais là le contenu comporte une couleur avec d'autres mots (ex : PP21 ROUGE , BLEU352, PP11 NOIR...). Je cherche un moyen de faire ressortir le mot directeur de ce champ à l'aide de ma première table Exemple : PP21 ROUGE c'est ROUGE.
yann
Il faut tout simplement créer un champ commun aux 2 tables, avec une
relation de 1 à 1 ou de 1 à plusieurs selon le cas.
le champ commun peut être le champ couleur.
La Table 1 comportera donc se champ unique, la Table 2, ce champ plus un
deuxième champ comportant la couleur plus autre chose.
Lucky_Team
http://www.access-developpement.com
"yann2" <YANNICK.FARIN@WANADOO.FR> a écrit dans le message de news:
%23XUCPe1wEHA.2172@TK2MSFTNGP14.phx.gbl...
Bonjour,
J'ai une table couleurs comportant dix couleurs (bleu, vert, rouge...)
J'ai une seconde table comportant un champ couleur, mais là le contenu
comporte une couleur avec d'autres mots (ex : PP21 ROUGE , BLEU352, PP11
NOIR...). Je cherche un moyen de faire ressortir le mot directeur de ce
champ à l'aide de ma première table
Exemple : PP21 ROUGE c'est ROUGE.
Il faut tout simplement créer un champ commun aux 2 tables, avec une relation de 1 à 1 ou de 1 à plusieurs selon le cas.
le champ commun peut être le champ couleur.
La Table 1 comportera donc se champ unique, la Table 2, ce champ plus un deuxième champ comportant la couleur plus autre chose.
Lucky_Team
http://www.access-developpement.com
"yann2" a écrit dans le message de news: %
Bonjour,
J'ai une table couleurs comportant dix couleurs (bleu, vert, rouge...)
J'ai une seconde table comportant un champ couleur, mais là le contenu comporte une couleur avec d'autres mots (ex : PP21 ROUGE , BLEU352, PP11 NOIR...). Je cherche un moyen de faire ressortir le mot directeur de ce champ à l'aide de ma première table Exemple : PP21 ROUGE c'est ROUGE.
yann
Eric
Bonjour Yann2,
Ne sachant pas ce que tu entends par : "Je cherche un moyen de faire ressortir le mot directeur de ce champ à l'aide de ma première table", je te propose 2 solutions. Mais, encore faut-il que tu n'aies pas de situation du genre ROUGE-MARRON PP456
La 1ere consiste à créer une fonction qui recherche à l'aide de ta table des "vraies" couleurs la couleur associée à chacun des enregistrements de la table contenant des références du genre PP21 Rouge et la couleur retournée s'affiche dans un champ Texte de formulaire.
En supposant que la table des "vraies couleurs" s'appelle Table2, celle contenant les couleurs "codées" Table2BIS, sur laquelle tu fondes ton formulaire.
la fonction, à écrire dans le module du formulaire, pourrait être du style :
Function RenvoiCouleur() Dim TROUVE As Boolean, rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Table2") While Not rst.EOF And TROUVE = False If InStr(Me.COULEUR2, rst(0)) > 0 Then ' Me.COULEUR2 contient les couleurs "codées" TROUVE = True RenvoiCouleur = rst(0) End If rst.MoveNext Wend Set rst = Nothing End Function
et cette fonction serait définie comme source d'un controle indépendant du formulaire. { =RenvoiCouleur() }
Variante : définir dans un module global la fonction, ainsi tu peux l'utiliser AUSSI dans une requête. Ca donne:
<-- Mon choix --> Function RenvoiCouleur2(strChamp As String) As String Dim TROUVE As Boolean, rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Table2") While Not rst.EOF And TROUVE = False If InStr(strChamp, rst(0)) > 0 Then TROUVE = True RenvoiCouleur2 = rst(0) End If rst.MoveNext Wend Set rst = Nothing End Function
2ème solution : Créer un 2eme champ dans la table2Bis qui recevrait la "vraie" couleur associée. !!! Mais est-ce une bonne solution ??? puisque tu as déjà une table des couleurs, donc redondance.
Je te donne le code, à tout hasard: Sub TestCouleur() Dim TROUVE As Boolean, rst1 As DAO.Recordset, rst2 As DAO.Recordset Set rst1 = CurrentDb.OpenRecordset("Table2BIS") Set rst2 = CurrentDb.OpenRecordset("Table2") While Not rst1.EOF TROUVE = False While Not rst2.EOF And TROUVE = False If InStr(rst1(0), rst2(0)) > 0 Then TROUVE = True rst1.Edit rst1(1) = rst2(0) rst1.Update End If rst2.MoveNext Wend rst1.MoveNext Wend Set rst1 = Nothing Set rst2 = Nothing End Sub
J'ai une table couleurs comportant dix couleurs (bleu, vert, rouge...)
J'ai une seconde table comportant un champ couleur, mais là le contenu comporte une couleur avec d'autres mots (ex : PP21 ROUGE , BLEU352, PP11
NOIR...). Je cherche un moyen de faire ressortir le mot directeur de ce champ à l'aide de ma première table Exemple : PP21 ROUGE c'est ROUGE.
yann
Bonjour Yann2,
Ne sachant pas ce que tu entends par :
"Je cherche un moyen de faire ressortir le mot directeur de ce
champ à l'aide de ma première table", je te propose 2 solutions.
Mais, encore faut-il que tu n'aies pas de situation du genre
ROUGE-MARRON PP456
La 1ere consiste à créer une fonction qui recherche à l'aide de ta table
des "vraies" couleurs la couleur associée à chacun des enregistrements de
la table contenant des références du genre PP21 Rouge et la couleur
retournée s'affiche dans un champ Texte de formulaire.
En supposant que la table des "vraies couleurs" s'appelle Table2, celle
contenant les couleurs "codées" Table2BIS, sur laquelle tu fondes ton
formulaire.
la fonction, à écrire dans le module du formulaire, pourrait être du
style :
Function RenvoiCouleur()
Dim TROUVE As Boolean, rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Table2")
While Not rst.EOF And TROUVE = False
If InStr(Me.COULEUR2, rst(0)) > 0 Then
' Me.COULEUR2 contient les couleurs "codées"
TROUVE = True
RenvoiCouleur = rst(0)
End If
rst.MoveNext
Wend
Set rst = Nothing
End Function
et cette fonction serait définie comme source d'un controle indépendant
du formulaire. { =RenvoiCouleur() }
Variante : définir dans un module global la fonction, ainsi tu peux
l'utiliser AUSSI dans une requête. Ca donne:
<-- Mon choix -->
Function RenvoiCouleur2(strChamp As String) As String
Dim TROUVE As Boolean, rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Table2")
While Not rst.EOF And TROUVE = False
If InStr(strChamp, rst(0)) > 0 Then
TROUVE = True
RenvoiCouleur2 = rst(0)
End If
rst.MoveNext
Wend
Set rst = Nothing
End Function
2ème solution : Créer un 2eme champ dans la table2Bis qui recevrait la
"vraie" couleur associée. !!! Mais est-ce une bonne solution ??? puisque
tu as déjà une table des couleurs, donc redondance.
Je te donne le code, à tout hasard:
Sub TestCouleur()
Dim TROUVE As Boolean, rst1 As DAO.Recordset, rst2 As DAO.Recordset
Set rst1 = CurrentDb.OpenRecordset("Table2BIS")
Set rst2 = CurrentDb.OpenRecordset("Table2")
While Not rst1.EOF
TROUVE = False
While Not rst2.EOF And TROUVE = False
If InStr(rst1(0), rst2(0)) > 0 Then
TROUVE = True
rst1.Edit
rst1(1) = rst2(0)
rst1.Update
End If
rst2.MoveNext
Wend
rst1.MoveNext
Wend
Set rst1 = Nothing
Set rst2 = Nothing
End Sub
Ne sachant pas ce que tu entends par : "Je cherche un moyen de faire ressortir le mot directeur de ce champ à l'aide de ma première table", je te propose 2 solutions. Mais, encore faut-il que tu n'aies pas de situation du genre ROUGE-MARRON PP456
La 1ere consiste à créer une fonction qui recherche à l'aide de ta table des "vraies" couleurs la couleur associée à chacun des enregistrements de la table contenant des références du genre PP21 Rouge et la couleur retournée s'affiche dans un champ Texte de formulaire.
En supposant que la table des "vraies couleurs" s'appelle Table2, celle contenant les couleurs "codées" Table2BIS, sur laquelle tu fondes ton formulaire.
la fonction, à écrire dans le module du formulaire, pourrait être du style :
Function RenvoiCouleur() Dim TROUVE As Boolean, rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Table2") While Not rst.EOF And TROUVE = False If InStr(Me.COULEUR2, rst(0)) > 0 Then ' Me.COULEUR2 contient les couleurs "codées" TROUVE = True RenvoiCouleur = rst(0) End If rst.MoveNext Wend Set rst = Nothing End Function
et cette fonction serait définie comme source d'un controle indépendant du formulaire. { =RenvoiCouleur() }
Variante : définir dans un module global la fonction, ainsi tu peux l'utiliser AUSSI dans une requête. Ca donne:
<-- Mon choix --> Function RenvoiCouleur2(strChamp As String) As String Dim TROUVE As Boolean, rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Table2") While Not rst.EOF And TROUVE = False If InStr(strChamp, rst(0)) > 0 Then TROUVE = True RenvoiCouleur2 = rst(0) End If rst.MoveNext Wend Set rst = Nothing End Function
2ème solution : Créer un 2eme champ dans la table2Bis qui recevrait la "vraie" couleur associée. !!! Mais est-ce une bonne solution ??? puisque tu as déjà une table des couleurs, donc redondance.
Je te donne le code, à tout hasard: Sub TestCouleur() Dim TROUVE As Boolean, rst1 As DAO.Recordset, rst2 As DAO.Recordset Set rst1 = CurrentDb.OpenRecordset("Table2BIS") Set rst2 = CurrentDb.OpenRecordset("Table2") While Not rst1.EOF TROUVE = False While Not rst2.EOF And TROUVE = False If InStr(rst1(0), rst2(0)) > 0 Then TROUVE = True rst1.Edit rst1(1) = rst2(0) rst1.Update End If rst2.MoveNext Wend rst1.MoveNext Wend Set rst1 = Nothing Set rst2 = Nothing End Sub