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

Requêtes et SQL. Discussion :

Extraction d'une chaîne pour mise a jour d'un champ


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 16
    Points
    16
    Par défaut Extraction d'une chaîne pour mise a jour d'un champ
    Bonjour

    J'ai un champ "adresse" qui contient un code postal. Par exemple:

    SUNNYBROOK & WOMENS HOSP,2075 BAYVIEW, TORONTO, ON M4N 3M5, CANADA

    Je veux extraire le code postal (ici M4N 3M5) pour le mettre dans un champ "codepostal". Je sais qu'il a la forme [A-Z]#[A-Z] #[A-Z]#[A-Z]
    Donc, comment aller le chercher dans mon champ adresse et le mettre dans codepostal

    Merci

    Martin F

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    salut,
    si toutes tes adresses sont au même format, tu peux utiliser la fonction Split()
    cela donnera :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Split(adresse,",")(4) As Zip_Code FROM MaTable;
    te retournera "ON M4N 3M5"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 16
    Points
    16
    Par défaut Malheureusement...
    Malheureusement, mon code postal peut se retrouver n'importe ou dans le champs adresse

    Martin

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    Dans ce cas là, on ne peut définir de règle de gestion fixe
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    J'aurais penser que quelque chose comme "cherche [A-Z]#[A-Z] #[A-Z]#[A-Z] dans adresse et met-le dans codepostal" etait faisable...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function cp(adresse As String) As String
    Dim boucle As Long
    Dim tempo As String
    For boucle = Len(adresse) - 6 To 1 Step -1
    tempo = (Mid(adresse, boucle, 7))
    If tempo Like "[A-Z]#[A-Z] #[A-Z]#" Then
    cp = tempo
        Exit Function
    End If
    Next boucle
    cp = "ERREUR"
    End Function

    attention une telle fonction peut dans des cas probablement rarissimes produire de faux résultats
    Elle est pas belle la vie ?

Discussions similaires

  1. [AC-2007] Evenement pour mise a jour d'un champ
    Par theuma dans le forum Access
    Réponses: 1
    Dernier message: 20/04/2011, 11h17
  2. Réponses: 8
    Dernier message: 09/01/2007, 16h30
  3. Extraction d'une chaîne de caractère avec SQL
    Par opeo dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 28/07/2006, 15h36
  4. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06
  5. Réponses: 5
    Dernier message: 25/11/2005, 12h42

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