OVH Cloud OVH Cloud

Extraction

5 réponses
Avatar
PatCatNats
Bonjour,

J'ai un nombre de champs formatés précisément :

021 - Claude Nougaro - Le jazz et la java.mp3

Par requête j'arrive à séparer :
- Le n° du morceau
- Le nom de l'auteur - le titre.extension
- L'extension du fichier


SELECT T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG) AS NumMorceau,
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid) AS Chanson,
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<") AS Extension
FROM T_Son_Morceau
GROUP BY T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG),
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid),
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<");


Le souhaite (dans cette même requête) séparer Le nom de l'auteur et le
titre...(moins le point+extension)

Là je sèche...

Quelqu'un aurait une idée ???? (mon séparateur étant [espace+tiret+espace])

Patrice

5 réponses

Avatar
Gafish
Bonjour,

Il faut que tu recherches ton séparateur (espace tiret espace) avec la
fonction instr qui va te donner l'emplacement dans la chaîne.
Ensuite avec les fonctions left et right, tu vas extraire les caractères
situés à gauche et à droite de ce séparateur.

Arnaud

"PatCatNats" a écrit dans le message de
news:cnb8l4$jml$
Bonjour,

J'ai un nombre de champs formatés précisément :

021 - Claude Nougaro - Le jazz et la java.mp3

Par requête j'arrive à séparer :
- Le n° du morceau
- Le nom de l'auteur - le titre.extension
- L'extension du fichier


SELECT T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG) AS NumMorceau,
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid) AS Chanson,
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<") AS
Extension

FROM T_Son_Morceau
GROUP BY T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG),
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid),
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<");


Le souhaite (dans cette même requête) séparer Le nom de l'auteur et le
titre...(moins le point+extension)

Là je sèche...

Quelqu'un aurait une idée ???? (mon séparateur étant
[espace+tiret+espace])


Patrice




Avatar
Jessy Sempere [MVP]
Bonjour

En gros tu peux utiliser le code qui suit, tu le copies dans une requête
et il te suffit de l'appeler comme n'importe quelle fonction d'access

Enum intChoix
NumFichier = 1
AuteurFichier = 2
TitreFichier = 3
End Enum

Function ScinderFichier(strField As String, intPart As intChoix)

Dim strX As String
Dim strNum As String
Dim strAuteur As String
Dim strTitre As String

strX = strField
strNum = left(strX, 3)
strX = Mid(strX, 7)
strAuteur = left(strX, InStr(strX, " - ") - 1)
strX = Mid(strX, InStr(strX, " - ") + 3)
strTitre = left(strX, Len(strX) - 4)

Select Case intPart
Case 1
ScinderFichier = strNum
Case 2
ScinderFichier = strAuteur
Case 3
ScinderFichier = strTitre
End Select

End Function


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Gafish" a écrit dans le message news:

Bonjour,

Il faut que tu recherches ton séparateur (espace tiret espace) avec la
fonction instr qui va te donner l'emplacement dans la chaîne.
Ensuite avec les fonctions left et right, tu vas extraire les caractères
situés à gauche et à droite de ce séparateur.

Arnaud

"PatCatNats" a écrit dans le message de
news:cnb8l4$jml$
Bonjour,

J'ai un nombre de champs formatés précisément :

021 - Claude Nougaro - Le jazz et la java.mp3

Par requête j'arrive à séparer :
- Le n° du morceau
- Le nom de l'auteur - le titre.extension
- L'extension du fichier


SELECT T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG) AS NumMorceau,
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid) AS Chanson,
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<") AS
Extension

FROM T_Son_Morceau
GROUP BY T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG),
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid),
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<");


Le souhaite (dans cette même requête) séparer Le nom de l'auteur et le
titre...(moins le point+extension)

Là je sèche...

Quelqu'un aurait une idée ???? (mon séparateur étant
[espace+tiret+espace])


Patrice








Avatar
PatCatNats
Merci Arnaud et Jessy
Vous venez encore d'enrichir mes connaissances...

Dernier petit blème (pour ce cas de figure ;o)))

Comment modifier le code si mon nom de fichier possède parfois un auteur et
parfois n'en possède pas pour que celà fonctionne ?

J'ai bien essayé du VraiFaux dans ma requête ou du IfThen dans la fonction
mais :o((((

Est-ce possible déjà ?

Patrice



"Gafish" a écrit dans le message de
news:
Bonjour,

Il faut que tu recherches ton séparateur (espace tiret espace) avec la
fonction instr qui va te donner l'emplacement dans la chaîne.
Ensuite avec les fonctions left et right, tu vas extraire les caractères
situés à gauche et à droite de ce séparateur.

Arnaud

"PatCatNats" a écrit dans le message de
news:cnb8l4$jml$
Bonjour,

J'ai un nombre de champs formatés précisément :

021 - Claude Nougaro - Le jazz et la java.mp3

Par requête j'arrive à séparer :
- Le n° du morceau
- Le nom de l'auteur - le titre.extension
- L'extension du fichier


SELECT T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG) AS NumMorceau,
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid) AS Chanson,
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<") AS
Extension

FROM T_Son_Morceau
GROUP BY T_Son_Morceau.NumAlbum, T_Son_Morceau.NomMorceau,
Left([NomMorceau],Forms!F_Son_Album!NbrCaractersG),
Mid([NomMorceau],Forms!F_Son_Album!NbrCaractersMid),
Format(Right([NomMorceau],Forms!F_Son_Album!NbrCaractersD),"<");


Le souhaite (dans cette même requête) séparer Le nom de l'auteur et le
titre...(moins le point+extension)

Là je sèche...

Quelqu'un aurait une idée ???? (mon séparateur étant
[espace+tiret+espace])


Patrice








Avatar
Jessy Sempere [MVP]
Bonjour

A première vue, je dirais de compter le nombre de " - ", s'il y en a
qu'un, alors pas d'auteur sinon l'auteur est présent...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"PatCatNats" a écrit dans le message news:
cnddup$93$
Merci Arnaud et Jessy
Vous venez encore d'enrichir mes connaissances...

Dernier petit blème (pour ce cas de figure ;o)))

Comment modifier le code si mon nom de fichier possède parfois un auteur
et

parfois n'en possède pas pour que celà fonctionne ?

J'ai bien essayé du VraiFaux dans ma requête ou du IfThen dans la fonction
mais :o((((

Est-ce possible déjà ?

Patrice





Avatar
PatCatNats
Bonsoir,

J'vais chercher de ce côté la fonction pour compter et appliquer un IfThen.

Merci

Patrice

"Jessy Sempere [MVP]" a écrit dans le message de
news:419b0dd2$
Bonjour

A première vue, je dirais de compter le nombre de " - ", s'il y en a
qu'un, alors pas d'auteur sinon l'auteur est présent...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"PatCatNats" a écrit dans le message news:
cnddup$93$
Merci Arnaud et Jessy
Vous venez encore d'enrichir mes connaissances...

Dernier petit blème (pour ce cas de figure ;o)))

Comment modifier le code si mon nom de fichier possède parfois un auteur
et

parfois n'en possède pas pour que celà fonctionne ?

J'ai bien essayé du VraiFaux dans ma requête ou du IfThen dans la
fonction


mais :o((((

Est-ce possible déjà ?

Patrice