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

VB 6 et antérieur Discussion :

Requête qui fonctionne sauf


Sujet :

VB 6 et antérieur

  1. #1
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut Requête qui fonctionne sauf
    Bonjour,
    Depuis quelques jours je bute sur une requête qui fonctionne , en fait mon but est de trier une table Clients en fonction de la localité, tout fonctionne bien sauf sur certaines localités comme
    Bois-d'Haine
    Braine-l'Alleud ect..
    Je pense que cela viens des localités comportant un trais d'union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim rsClients As Recordset
        Dim strRecherche As String, strLocalité as String
        strLocalité = cboLocalité.List(cboLocalité.ListIndex) ' je récupère la localité
      ' Le champ Ville correspond à la localité
    strRecherche = "Select Nom, Prénom, Ville,[Code Client] From Clients  where Ville ='" & strLocalité & "'"
     Set rsClients = Bd.OpenRecordset(strRecherche, dbOpenDynaset)
       lstClients.Clear
       While Not rsClients.EOF
        lstClients.AddItem rsClients![Nom] & Chr(9) & rsClients![Prénom]
        lstClients.ItemData(lstClients.NewIndex) = rsClients![Code Client]
        rsClients.MoveNext
    Wend
    rsClients.Close
    .
    Merci à vous
    vb

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    Essais de faire ta requête en dur, pour voire si sa fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strLocalité = "Bois[-]d[']Haine" ' <-- L'essai
    strRecherche = "Select Nom, Prénom, Ville,[Code Client] From Clients  where Ville ='" & strLocalité & "'"
    Si cela passe tu peux faire comme cela sur toutes tes localités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        strLocalité = cboLocalité.List(cboLocalité.ListIndex) ' je récupère la localité
        strLocalité = Replace(strLocalité, "-", "[-]")
        strLocalité = Replace(strLocalité, "'", "[']")
    'MsgBox strLocalité
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Bonsoir ProgElecT,
    Merci pour ta réponse mais ca ne passe pas, rhhh
    Je vais encore chercher de mon côté, je n'ai jamais eu cela dans mes requêtes depuis que je programme...un détail...une logique de syntaxe sans doute
    Merci
    vb

  4. #4
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    Je viens de voir l'erreur, en fait toutes les localités ayant un apostrophe(comme Bois-d'Haine) , mon query ne passe pas !Donc mon idée est de passer en revue le Champ ville et de supprimer les localités ayant un apostrophe et de mettre un blanc.
    En sachant que la fonction Replace ne fonctionne pas sur une base de données Access 97 , je cherche une autre solution....mais comment?
    ProgElecT m'as donné la bonne piste....
    Merci à vous tous
    vb

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        strLocalité = cboLocalité.List(cboLocalité.ListIndex) ' je récupère la localité
        'strLocalité = Replace(strLocalité, "-", "[-]") ' inutile
        strLocalité = Replace(strLocalité, "'", "''")
    Après avoir fait une petite BD et des essais, si un champs contient un apostrophe, il faut le doubler.
    Le tiret ne pose pas de problème, pas besoin de l'entourer de [ ]
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    Chez moi message d'erreur sur Replace...Erreur de complilation, Sub ou Function non définie, c'est une BD 97, vb5
    Merci ProgElecT

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    la fonction replace n'existe pas sous VB5
    Il te faut donc la créer (en substitut)

    exemple :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Public Function Replace(ByVal MyString As String, ByVal ItemToFind As String, ByVal ItemToReplace As String) As String
      Dim iPosit As Long
      Dim strTemp As String
      Dim strTemp1 As String
      Dim strTemp2 As String
      strTemp = MyString
      iPosit = InStr(strTemp, ItemToFind)
      While iPosit > 0
        strTemp1 = Left(strTemp, iPosit - 1)
        strTemp2 = Mid$(strTemp, iPosit + Len(ItemToFind))
        strTemp = strTemp1 & ItemToReplace
        iPosit = Len(strTemp)
        strTemp = strTemp & strTemp2
        iPosit = InStr(iPosit + 1, strTemp, ItemToFind)
      Wend
      Replace = strTemp
    End Function
     
    '====================================================
    'SERAIT PEUT-ETRE MIEUX AINSI
    'Function Replace(sInput As String, WhatToReplace As String, ReplaceWith As String) As String
        'Dim Ret As Long
        'Replace = sInput
        'Ret = -Len(ReplaceWith) + 1
        'Do
            'Ret = InStr(Ret + Len(ReplaceWith), Replace, WhatToReplace, vbTextCompare)
            'If Ret = 0 Then Exit Do
            'Replace = Left$(Replace, Ret - 1) + ReplaceWith + Right$(Replace, Len(Replace) - Ret - Len(WhatToReplace) + 1)
        'Loop
    'End Function

  8. #8
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    En effet la fonction n'existe pas en vb5, la fonction proposée par babaothe fonctionne .Merci aussi à ProgElecT
    Merci à tous pour votre contribution
    vb

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/08/2009, 15h40
  2. [MySQL] Requête qui fonctionne à moitié
    Par TomDelonge dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/03/2009, 16h24
  3. Requête qui fonctionne sous Access mais pas JDBC
    Par loic911 dans le forum JDBC
    Réponses: 1
    Dernier message: 12/09/2008, 16h46
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. Requête qui fonctionne 1 fois sur 100
    Par nicotine002 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 11h42

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