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 :

Requete avec extraction de chaine [À faire]


Sujet :

Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 500
    Points
    500
    Par défaut Requete avec extraction de chaine
    Bonsoir tout le monde !!

    J'ai dans un logiciel de vidéothèque une table dans le titre est stocké de la façon suivante

    titrefilm (article)

    Exemple

    12 TRAVAUX D'ASTÉRIX (LES)

    Comment faire pour récupérer le titre sans l'article dans une requete ??

    Merci d'avance

    Bestall666

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    essai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Droite("MaChaine";Len(MaChaine)-5)
    dans une colonne de ta requete qui doit comporter titrefilm (article) comme col deja.
    MaChaine c'est titrefilm (article)
    j'espere que ça marchera
    @+
    Edit01: ça serait bien mieux par le code; car cet ex ne marche qu'avec un article de long=3

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 500
    Points
    500
    Par défaut
    Citation Envoyé par keita
    essai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Droite("MaChaine";Len(MaChaine)-5)
    dans une colonne de ta requete qui doit comporter titrefilm (article) comme col deja.
    MaChaine c'est titrefilm (article)
    j'espere que ça marchera
    @+
    Tout d'abord merci de ta réponse

    J'ai effectivement pensé à la fonction Mais comment faire pour les titres qui n'ont pas d'article !!!

    @+

    Bestall666

  4. #4
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    Entre temps j'avais editer mon 1er post; je disais que ça serait bien mieux avec le code.
    @+

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    bon dans ton cas, le top c'est quand meme les regexp ... meme si ça peut paraître compliqué ça reste plus élégant d'une kyrielle de Instr() Left() ou autres aléatoires ..

    Seule contrainte, ajouter la référence Microsoft VBScript Regular Expressions (dans mon cas la 5.5)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function SupprParentheses(ByVal strExp As String, ByVal strPatt As String) As String
     
    Dim reg As New VBScript_RegExp_55.RegExp
     
    reg.Pattern = strPatt
    SupprParentheses = reg.Replace(strExp, "$1")
     
    Set reg = Nothing
     
    End Function
    et ensuite ... il faut un peu avoir tâté les regexp ... mais vite fait ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    supprparentheses("douze travaux d'astérix (les)", "(.*)(\(.*\))$")
    Dans ton cas, il faudra toujours utiliser le pattern suivant : "(.*)(\(.*\))$"

    explications du pattern
    (.*)(\(.*\))$
    - le pattern délimite deux zones avec les parenthèses capturantes ()()
    - chacune sera renvoyée par une variable $1 et $2 ...
    - le pattern indique que la premiere partie $1 sera précèdera le signe parenthèse, on met un antislash car la parenthèse est un caractère réservé.
    - .* indique que nous capturons toute chaine vide ou non ...
    - le $ final indique la fin de la chaîne, donc la capture ne portera que sur une parenthèse en fin de chaîne ...

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Super Cafeine !


    Voilà l'objet de ton prochain tuto : Microsoft VBScript Regular Expressions


    Sinon, pour 'fignoller', ne penses-tu pas que si la fonctino faisait un petit trim sur le retour du regex, dans le cas où la chaine et la parenthèse ouvrante sont séparés d'un espace ... l'espace vire

  7. #7
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    je votes pour!!!

    un tuto sur les regexp !!!

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Pareil, pour.
    Je connais pas, mais ça à l'air utile et puissant, et les problèmes de traitements de chaînes, c'est assez courant.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 500
    Points
    500
    Par défaut
    Hello Tous

    Trop fort ce forum : j'apprends un nouveau truc !!

    Jamais entendu parlé des reg patern !!!!!

    Ca marche sous Access 2000 ?

    J'avais effectivemùent oublié de préciser
    Je teste des que possible et je vous tiens au courant

    Quant au tuto, je suis à 500 % pour !!!

    Merci encore

    @+

    Bestall

    PS : C 'est normal que je ne puisse pas mettre de signature dans mon profil?

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2012, 01h08
  2. Extraction de chaines avec StringTokenizer
    Par j2ee60 dans le forum Général Java
    Réponses: 5
    Dernier message: 31/05/2011, 17h50
  3. [MySQL] requete avec variable chaine de caractere
    Par infotron dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/10/2005, 22h03
  4. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  5. Requete avec chaine de caractère commence par
    Par jazzes_dean dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/08/2004, 13h07

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