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.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    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 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    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
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    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 averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    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 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    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;
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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

  6. #6
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    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

+ 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