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 :

Rechercher nombre dans chaine de caractères [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Rechercher nombre dans chaine de caractères
    bonjour,

    j'ai un champ contenant des caractères alpha-numériques
    je voudrais en extraire la chaîne de caractères alpha commençant à gauche jusqu'à ce que on rencontre un caractère numérique.
    ex à partir de "Poudre de perlinpinpin 250 gr" n'en retirer que "Poudre de perlinpinpin"
    j'ai bien fait des essais avec INstr mais je n'arrive pas à la bonne syntaxe

    merci d'avance pour votre aide

  2. #2
    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 653
    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 653
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    idée à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub piou()
    Dim tmp As String
    Dim i As Integer
    Dim tmpi As Integer
    tmp = "Poudre de perlinpinpin 250 gr"
    For i = 0 To 9
        tmpi = InStr(1, tmp, CStr(i))
        tmp = Left(tmp, IIf(tmpi = 0, Len(tmp), tmpi - 1))
    Next i
    Debug.Print Trim(tmp)
    End Sub

  3. #3
    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
    Citation Envoyé par jpcheck Voir le message
    salut,
    idée à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub piou()
    Dim tmp As String
    Dim i As Integer
    Dim tmpi As Integer
    tmp = "Poudre de perlinpinpin 250 gr"
    For i = 0 To 9
        tmpi = InStr(1, tmp, CStr(i))
        tmp = Left(tmp, IIf(tmpi = 0, Len(tmp), tmpi - 1))
    Next i
    Debug.Print Trim(tmp)
    End Sub
    Elle est sympa cette idée

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    merci pour votre aide;
    c'est vrai que ça fonctionne bien comme cela mais je m'attendais plutôt à une réponse du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Gauche([libellé];DansChaîne(1;[libellé];"9")-1)
    ou j'aurais pû remplacer le "9" par "une valeur comprise entre 0 et 9"
    mais je ne sais pas si cette fonction (InStr ou DansChaine) accepte ce genre de paramètre ... si quelqu'un pouvait m'éclairer !

  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 653
    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 653
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    ben tu adaptes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function piou(strinput As String) As String
    Dim tmp As String
    Dim i As Integer
    Dim tmpi As Integer
    tmp = strinput
    For i = 0 To 9
        tmpi = InStr(1, tmp, CStr(i))
        tmp = Left(tmp, IIf(tmpi = 0, Len(tmp), tmpi - 1))
    Next i
    piou =  Trim(tmp)
    End Function
    ce qui dionnera dans ta requete

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT PIOU(monchamptexte) FROM MaTable;

  6. #6
    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
    mais je ne sais pas si cette fonction (InStr ou DansChaine) accepte ce genre de paramètre ... si quelqu'un pouvait m'éclairer !
    La fonction InStr cherche une valeur et non un domaine de valeur. La solution de jpcheck semble la meilleure et avec des performances exceptionnelles

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    salut tout le monde,
    Si je peux me permettre car il y a 2 super expert sur ce post qui risquent de me mettre à la retraite si je me plante et pour le peu d’intérêt que cela représente !!! :
    En fait en précisant ton problème
    citation :
    ou j'aurais pû remplacer le "9" par "une valeur comprise entre 0 et 9"
    Si tu as effectivement le renseignement du 1er chiffre dans un contrôle existant, car si tu dois le saisir je ne vois pas l’intérêt, ce que tu gagneras dans le calcul de la requête qui est infinitésimal, tu le perdras largement dans la saisie avec en plus le risque d’erreur.

    Mais soit pour info dans peut être un autre contexte au cas où ça existe:
    Si le 1er chiffre est dans un champ texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Extract1: Gauche([Libellé];DansChaîne([Libellé];[TonChampN°]Texte)-1)
    Si le 1ere chiffre est dans un champ numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Extract2: Gauche([Libellé];DansChaîne([Libellé];CChaîne([TonChampN°]Numérique))-1)
    mais je confirme et apprécie la solution jpcheck sympa,efficace .

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    ok, merci à tous pour ces infos
    je vais me débrouiller avec ça

    a+

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

Discussions similaires

  1. [PL/pgSQL] Obfuscation nombre dans chaine 32 caractères
    Par T`lash dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/07/2013, 18h48
  2. Recherche de texte dans chaine de caractère
    Par Requin15 dans le forum Oracle
    Réponses: 13
    Dernier message: 14/09/2006, 12h10
  3. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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