Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 16h07   #1
LHT
Candidat au titre de Membre du Club
 
Inscription : juin 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 26
Points : 10
Points : 10
Par défaut Extraction d'une ligne dans un champ texte multiligne

Bonjour à tous,

j'ai un champ adresse ayant comme propriété zone texte à 255 caractères avec des données contenant des renvois de ligne.

Exemple :
Residence LeRelou - Bat Newbie
45 Rue du traitement de la donnée pourrie
BP 007

Je souhaiterais extraire chaque ligne pour la mettre dans les champs prévus à cet effet (càd au format de la poste)

Exemple :
Adresse1 : Residence LeRelou - Bat Newbie
Adresse3 : 45 Rue du traitement de la donnée pourrie
Adresse4 : BP 007

Etant Novice dans les fonctions diponible sous access, y'aurait il une bonne âme pour me guider.
Au passage, existe-il une fonction qui permet de compter le nombre de ligne de ce même champs.

Merci à vous tous car j'ai à peu près 97000 lignes à traiter.
LHT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 17h00   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,

Il n'existe pas de fonction magique pour effectuer cela...
Voici une possibilité qui consiste à décomposer l'adresse si peu que celle-ci soit bien composée de retour à la ligne... et que le code postal sépare la ville d'un espace (sinon, il faudra adapter).

Tu ajoutes un module dans ton projet et tu y copies cet en-tête et la fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Compare Database
 
Const ADDRESS_LINE_1 As String = "Ligne1"
Const ADDRESS_LINE_2 As String = "Ligne2"
Const POSTAL_CODE As String = "CodePostal"
Const CITY As String = "Ville"
 
Public Function GetPartAddress(ByVal AddressMultiLine As String, ByVal Item As String, ByVal CPCitySeparator As String) As String
Dim strPartAddress As String
Dim strPartCP As String
Dim strPartCity As String
 
    Select Case Item
        Case ADDRESS_LINE_1
            strPartAddress = Split(AddressMultiLine, vbCrLf)(0)
        Case ADDRESS_LINE_2
            strPartAddress = Split(AddressMultiLine, vbCrLf)(1)
        Case POSTAL_CODE, CITY
            strPartAddress = Split(AddressMultiLine, vbCrLf)(3)
            strPartCP = Split(strPartAddress, CPCitySeparator)(0)
            strPartCity = Split(strPartAddress, CPCitySeparator)(1)
    End Select
    If Len(CPCitySeparator) Then
        Select Case Item
            Case POSTAL_CODE
                GetPartAddress = strPartCP
            Case CITY
                GetPartAddress = strPartCity
        End Select
    Else
        GetPartAddress = strPartAddress
    End If
End Function
Tu créés alors une requête qui va exploiter cette fonction selon le cas :
Code :
1
2
SELECT GetPartAddress([Adresse],"Ligne1","") AS Ligne1, GetPartAddress([Adresse],"Ligne2","") AS Ligne2, GetPartAddress([Adresse],"CodePostal"," ") AS CP, GetPartAddress([Adresse],"Ville"," ") AS Ville
FROM TableAdresseMultiLignes;
Après quoi tu peux faire soit un UPDATE soit un CREATE TABLE au choix...

Est-ce assez clair pour toi ?

Argy

P.S. ci-dessous, ce que ça donne :
Images attachées
Type de fichier : jpg SplitAddr.JPG (84,2 Ko, 10 affichages)
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/05/2011, 10h13   #3
LHT
Candidat au titre de Membre du Club
 
Inscription : juin 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 26
Points : 10
Points : 10
Merci argyronet pour cette réponse.T'es un boss!
Après tests, elle marche tip top .
Il n'y avais pas le code postal ni la ville incluse (champs séparés), je me suis donc contenté des premières lignes.
Merci encore pour ta réponse rapide. Elle m'a bien aidé.

LHT
LHT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h32.


 
 
 
 
Partenaires

Hébergement Web