OVH Cloud OVH Cloud

Séparé

1 réponse
Avatar
George
Bonjour,

J'ai un champ dans lequel il y a plusieurs informations:

exemple: sous la columne nom, =E0 la rang=E9e 1 :
chat;chien;girafe;

rang=E9e 2: chien;l=E9opard


J'aimerais dans un formulaire, dans une zone de texte ou=20
autre, que cette zone n'affiche qu'une partie.
exemple, que le deuxi=E8me nom (chien et l=E9opard).

Il serait encore mieux de voir dans une zone de liste les=20
diff=E9rents noms de la meme rang=E9e-colomne mais sur=20
diff=E9rentes rang=E9e. De tel sorte que je puissse en choisir=20
un et par la suite faire un lien vers une autre page,=20
consid=E9rant ce choix.

Merci

1 réponse

Avatar
Michel Walsh
Salut,


Un grand coup de règle sur les doigts pour une table non normalisée.


Nonobstant, ce qui suit peut aider ( Access 2002 ou 2003) :

SELECT Split( champ1, ";") (1), Split( champ2, ";") (1)
FROM maTable



En effet, SPLIT(...) retourne un vecteur ( un tableau mais qui n'a qu'une
dimension ), donc

SPLIT(...) (1)

retourne le second élément de ce vecteur, chien et léopard.


SPLIT existe également sous Access 2000 mais ne peut pas y être utilisé dans
une requête. Il faudrait l'encapsuler, tout bêtement, dans un module
standard (pas de classe, pas de formulaire):

------------------------------------------------------------------------
Public Function Écartille( x As String) As String( )
' fonction qui retourne un vecteur de chaînes

Écartille=Split(x, ";") ' ne pas utiliser SET

End Function
--------------------------------------------------------------------------


et alors, utiliser, dans la requête:

SELECT Écartille(champ1)(1), Écartille(champ2)(1)
FROM maTable



Bien sûr, la syntaxe nom()() peut surprendre, mais la première parenthèse
contient des arguments pour la fonction, nom, et la seconde contient un
indice-positionnel pour sélection d'élement d'un vecteur. On ne voit pas
cet animal à tout les jours, mais cela ne veut pas dire que c'est de la
haute voltige pour autant... :-)




Espérant être utile,
Vanderghast, Access MVP



"George" wrote in message
news:1e60401c45559$c0aed4b0$
Bonjour,

J'ai un champ dans lequel il y a plusieurs informations:

exemple: sous la columne nom, à la rangée 1 :
chat;chien;girafe;

rangée 2: chien;léopard


J'aimerais dans un formulaire, dans une zone de texte ou
autre, que cette zone n'affiche qu'une partie.
exemple, que le deuxième nom (chien et léopard).

Il serait encore mieux de voir dans une zone de liste les
différents noms de la meme rangée-colomne mais sur
différentes rangée. De tel sorte que je puissse en choisir
un et par la suite faire un lien vers une autre page,
considérant ce choix.

Merci