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 :

une requête sur les chaine de caractère


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut une requête sur les chaine de caractère
    Bonjour,

    J'ai une table qui contient un champ, qui contient des adresses mail.

    Je suis en train d'essayer d'extraire le nom de domaine (ce qu'il y a après l'@) de chaque adresse et de l'insérer dans un deuxième champ de la table.

    Vous voyez le truc?

    Merci d'avance à ceux qui essaieront de m'aider...

    Ajor

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,
    n'oublie pas de préciser l'environnement sur lequel tu travailles, ça peut aider

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Heu oui, je bosse sur Microsoft Access 2000...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bon, je vais pas pouvoir aider des masses, ne connaissant pas access.

    En oracle, pour donner une idée, ça se ferait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE matable 
    SET monchamps=substr(email,instr(email,'@')+1)
    Sous Access SUBSTR n'existe manifestement pas. INSTR existe, mais je saurai pas dire comment il s'utilise (par exemple, en mySql les deux parametres sont inversés par rapport à Oracle je crois).
    Consulte ce lien, ça peut peut etre t'aider : http://sqlpro.developpez.com/cours/s...onctions/#L1.4

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 631
    Points : 34 339
    Points
    34 339
    Par défaut
    salut,
    utilise cette 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
    Function RecupererTexteEntreBornes(texte As String, textedebut As String, textefin As String) As String
    Dim result As String
    Dim debut As Integer
    Dim fin As Integer
        debut = InStr(1, texte, textedebut)
        fin = InStr(debut + Len(textedebut), texte, textefin)
        result = ""
        If debut > 0 Then
            If fin > debut + Len(textedebut) Then
                result = Mid(texte, debut + Len(textedebut), fin - debut - Len(textedebut))
            Else
                result = Right(texte, Len(texte) - debut - Len(textedebut) + 1)
            End If
        End If
        RecupererTexteEntreBornes = result
    End Function
    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox RecupererTexteEntreBornes("pioupiou@DVP.com","@","")
    affichera

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Merci Snipah,

    en effet SUbstr n'est pas reconnue dans Access2000.
    Et je ne voie pas comment utiliser Instr dans mon cas, ça renvoie une position, donc un chiffre.

    Est-ce qu'il y a un autre moyen?

    Aj

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Fonction Mid

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup pour votre aide.

    Par contre je suis débutant, et d'habitude j'utilise des simple requetes SQL... je ne sais pas trop comment m'y prendre pour utiliser cette fonction, ou est-ce que je la place?

    Et est-ce que c'est dans la requete que je place un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox RecupererTexteEntreBornes(Ma_Table.email,"@","")

    ?? je nage un peu....

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    On dirait qu'il y a une solution avec la fonction Mid (merci Tofalu!)

    J'ai essayé cette requete

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Matable SET dom = Mid([mail],Instr("@",[mail]));

    dans lequel mail contient mon email et dom doit contenir le nom de domaine.

    Sauf que j'obtient une erreur d'échec de conversion de type


    Vous voyez l'erreur?

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 631
    Points : 34 339
    Points
    34 339
    Par défaut
    En l'occurence, le code fourni doit être mis dans un module.
    Une fois cela fait, il suffit d'écrire la requête de la façon suivante :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE matable 
    SET monchamps=RecupererTexteEntreBornes(email,'@','')

    L'avantage de travaille sous Access est notamment la possibilité de faire appel à des fonctions développées en VBA, ce qui permet d'avoir une manipulation plus complexe des données

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup, cette fonction a marché!

    Merci jpcheck

Discussions similaires

  1. Réponses: 19
    Dernier message: 12/04/2007, 15h11
  2. question sur les chaine de caractères
    Par amy0o0 dans le forum C
    Réponses: 11
    Dernier message: 14/10/2006, 14h14
  3. [CR 10] Traitement sur les chaines de caractères
    Par sylviefrfr dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 11/09/2006, 09h16
  4. question sur les chaines de caractères
    Par pierrOPSG dans le forum C
    Réponses: 5
    Dernier message: 13/04/2006, 18h55
  5. xsl : test sur les chaine de caractère
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/07/2005, 15h43

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