IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Extraction d'une ligne dans un champ texte multiligne [AC-2003]


Sujet :

Access

  1. #1
    LHT
    LHT est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 27
    Points
    27
    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.

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Images attachées  
    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.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    LHT
    LHT est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  2. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43
  3. Réponses: 2
    Dernier message: 12/02/2006, 15h42
  4. [MySQL] Afficher une requête dans un champ texte
    Par SnickeursMan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/11/2005, 10h07
  5. Réponses: 9
    Dernier message: 23/05/2005, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo