OVH Cloud OVH Cloud

PB Extraction données dans champs mémo

2 réponses
Avatar
Thibaud
Bonjour,

Est il possible d'extraire qu'une partie de donn=E9es dans=20
un champs m=E9mo? si oui commenbt faire?

Exemple :
j'ai un champ m=E9mo qui contient

T: 1.56
R: 2200t
A: 56=B2
P: 5/7
F:
U: 60b

je ne souhaite qu'extraire les lignes R: , P:, U:

J'ai beau chercher dans l'aide l'extraction avec trim et=20
autres et je ne vois pas la solution.

Je vous remercie par avance de vos conseils.

Thibaud

2 réponses

Avatar
3stone
Salut,

"Thibaud"
Est il possible d'extraire qu'une partie de données dans
un champs mémo? si oui commenbt faire?

Exemple :
j'ai un champ mémo qui contient

T: 1.56
R: 2200t
A: 56²
P: 5/7
F:
U: 60b
je ne souhaite qu'extraire les lignes R: , P:, U:
----------------------------------------------------

En règle générale, il faut éviter ce genre de contenu dans un mémo...
Il vaut mieux créer des champs spécifiques pour ce genre de contenu.

Mais, avec la petite fonction ci-dessous, que tu copie dans un module fénéral...
nomme-le "mod_Extraire", tu peux malgré tout extraire cela...


Dans une requête, tu crée un champ calculé avec, par exemple:

R: Extraire(NomDuMemo;"R:")

tu obtiendra... R: 2200t

'//-------------------------------------------------
'// a coller dans un module général, onglet module
'//-------------------------------------------------
Function Extraire(strDans, strQuoi) As String
On Error GoTo err_extraire

Dim iStart As Integer
Dim iEnd As Integer
Dim iLong As Integer

iStart = InStr(strDans, strQuoi)
iEnd = InStr(iStart, strDans, vbCrLf)
If iEnd = 0 Then
iEnd = Len(strDans)
End If
iLong = iEnd - iStart

Extraire = Mid(strDans, iStart, iLong)

exit_function:
Exit Function

err_extraire:
Extraire = vbNullString
Resume exit_function

End Function



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Avatar
Thibaud
Mille merci pour cette fonction qui correspond tout a
fait à nos attente.

Cela fonctionne parfaitement.

Thibaud

-----Message d'origine-----
Salut,

"Thibaud"
Est il possible d'extraire qu'une partie de données dans
un champs mémo? si oui commenbt faire?

Exemple :
j'ai un champ mémo qui contient

T: 1.56
R: 2200t
A: 56²
P: 5/7
F:
U: 60b
je ne souhaite qu'extraire les lignes R: , P:, U:
----------------------------------------------------

En règle générale, il faut éviter ce genre de contenu
dans un mémo...

Il vaut mieux créer des champs spécifiques pour ce genre
de contenu.


Mais, avec la petite fonction ci-dessous, que tu copie
dans un module fénéral...

nomme-le "mod_Extraire", tu peux malgré tout extraire
cela...



Dans une requête, tu crée un champ calculé avec, par
exemple:


R: Extraire(NomDuMemo;"R:")

tu obtiendra... R: 2200t

'//-------------------------------------------------
'// a coller dans un module général, onglet module
'//-------------------------------------------------
Function Extraire(strDans, strQuoi) As String
On Error GoTo err_extraire

Dim iStart As Integer
Dim iEnd As Integer
Dim iLong As Integer

iStart = InStr(strDans, strQuoi)
iEnd = InStr(iStart, strDans, vbCrLf)
If iEnd = 0 Then
iEnd = Len(strDans)
End If
iLong = iEnd - iStart

Extraire = Mid(strDans, iStart, iLong)

exit_function:
Exit Function

err_extraire:
Extraire = vbNullString
Resume exit_function

End Function



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------



.