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

VBScript Discussion :

Problème d'utilisation de la fonction MID


Sujet :

VBScript

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut Problème d'utilisation de la fonction MID
    Bonjour,

    Dans le cadre du développement de mon application, je vais chercher une donnée sur une base via une requête SQL. Puis, je dois en extraire le troisième caractère. Je dois ensuite écrire "OUI" dans ma liste déroulante si le caractère est à 1 et "NON" si le caractère est à 0. J'ai donc écrit le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (Mid((RsUser("type_acces")),3,1) = 0) Then
            response.write "<tel_rep>" & "NON" & "</tel_rep>"
    Else response.write		"<tel_rep>" & "OUI" & " </tel_rep>"
    End If
    Mais peut importe la valeur du troisième caractère qu'il extrait de la donnée, il écrit toujours "NON".

    Si quelqu'un peut m'aider, je suis preneuse.

    Merci d'avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour ... , mid retourne une chaine de caractère, compare son retour avec une chaine de caractère en plaçant 0 entre "" : ..1) = "0")

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Non, rien à faire cela ne fonctionne toujours pas.

  4. #4
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Salut

    Audrey, tu as la mémoire courte non ?

    Regarde ton topic et nos 2 dernières réponses

    http://www.developpez.net/forums/d10...x/#post6024009

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    En effet, cela fonctionnait, jusqu'à ce que l'on me dise que finalement ils souhaitent une liste déroulante à la place de la textbox.

  6. #6
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Et tu as bien vu que pour avoir le troisième caractère, c'est 2 et pas 3 en paramètre de la fonction Mid() ?
    Mid((RsUser("type_acces")),2,1)


    Et si tu affiche ton Mid((RsUser("type_acces")),2,1), tu as quoi ?

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Cela m'affiche bien la bonne donnée, 0 quand il est dans le répertoire et 1 quand il ne l'est pas....
    Cela doit venir de ma liste déroulante dans ce cas. Je l'ai codé comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="txtBxRep_Tel" >
         <option value="OUI"> OUI </option>
         <option value="NON"> NON </option>
    </select>

  8. #8
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Je ne vois pas le rapport entre ta liste déroulante et le reste

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Comme cela ne marche pas je pensais que cela venait de la construction de ma liste déroulante.

  10. #10
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Bah peut être mais quel est le rapport entre ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (Mid((RsUser("type_acces")),3,1) = 0) Then
            response.write "<tel_rep>" & "NON" & "</tel_rep>"
    Else response.write		"<tel_rep>" & "OUI" & " </tel_rep>"
    End If
    et ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="txtBxRep_Tel" >
         <option value="OUI"> OUI </option>
         <option value="NON"> NON </option>
    </select>

  11. #11
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    En fait c'est une fiche qui se remplie dynamiquement donc je le fais via un js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var tel_rep=docXML.documentElement.childNodes[1].childNodes[6].firstChild.nodeValue;
     
    [...]
     
    document.frm_agents.txtBxRep_Tel.value=tel_rep;

  12. #12
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Donc quand tu modifie ton select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="txtBxRep_Tel" >
         <option value="OUI"> OUI </option>
         <option value="NON"> NON </option>
    </select>
    ça enregistre oui ou non dans ta base de données, mais je ne vois toujours pas le rapport avec ton problème initial qui est de récupérer le 3ème caractère d'une chaine, que si il est égal à 0, on affiche quelque chose et si il est différent, on affiche autre chose

  13. #13
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Si la valeur du Mid est 0 cela veut dire que l'agent est visible dans le répertoire téléphonique donc il faut mettre la liste déroulante à OUI (car il est affiché). Si la valeur du Mid est 1 cela veut dire que l'agent ne doit pas être visible dans le répertoire téléphonique donc il faut mettre la liste déroulante à NON (car il est n'est, alors, pas affiché).

  14. #14
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Tu as essayé d'utiliser CInt() ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If (CInt(Mid((RsUser("type_acces")),3,1)) = 0) Then
            response.write "<tel_rep>" & "NON" & "</tel_rep>"
    Else response.write		"<tel_rep>" & "OUI" & " </tel_rep>"
    End If

  15. #15
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Je ne connaissais pas. Il passe quand même toujours dans la boucle où il doit afficher "NON".

  16. #16
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    donc ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write CInt(Mid((RsUser("type_acces")),2,1))
    t'affiche bien 0

    c'est pas ce que tu veux ?

  17. #17
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Si le problème n'est pas dans la fonction Mid ou dans ton test If Else alors elle se situe peut-être ailleurs...
    As-tu un "On Error Resume Next" quelque part, genre dans ta fonction RsUser, qui pourrait te cacher une erreur ?

    C'est peut-être un fausse piste, mais ça peut être le cas quand les tests If Else se comportent bizarrement.
    Bonne continuation.

  18. #18
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Je vais d'abord répondre à pitchalov car la réponse va être simple.

    Tout d'abord, merci pour ton idée, car je n'avais pas pensé à vérifier de nouveau cette histoire de "On Error Resume Next".
    Mais j'en avais déjà fait la chasse et il n'y en a plus à l'horizon.

    Pour tumoo :

    Quand l'affichage est en TextBox il m'affiche bien ce que je souhaite obtenir. C'est à dire : il écrit "OUI" quand la valeur est à 0, et "NON" quand la valeur est à 1. Mais dès que je passe en menu déroulant, il passe dans le if et jamais dans le else. Donc il m'affiche, à chaque fois, "NON".

  19. #19
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Je vois pas trop d'où vient ton problème
    J'ai fait des tests de mon côté

    Code asp : 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
     
    a="1001010"
    b="0110101"
     
    If (Mid((a),3,1) = "0") Then 
        Response.write "Non" 
    Elseif (Mid((a),3,1) = "1") Then 
        Response.write "Oui" 
    else 
        Response.write "Autre" 
    End If 
     
    Response.write "<br />"
     
    If (Mid((b),3,1) = "0") Then 
        Response.write "Non" 
    Elseif (Mid((b),3,1) = "1") Then 
        Response.write "Oui" 
    else 
        Response.write "Autre" 
    End If

    J'ai bien le bon résultat d'affiché.

    Par contre pour le 3ème caractère, c'est 3 et non 2 en paramètre de Mid() comme je l'ai dit

    J'ai testé plusieurs syntaxes

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (Mid((b),3,1) = 0)
    (Mid((b),3,1) = "0")
    (Cint(Mid((b),3,1)) = 0)
    (Cint(Mid((b),3,1)) = "0")

    Les 4 syntaxes me donnent le bon résultat

  20. #20
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    ça y est j'ai enfin réglé mon soucis.
    C'était, comme toujours, une erreur à la con, i.e. un espace en trop.
    En effet, j'avais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (CInt(Mid((RsUser("type_acces")),3,1)) = 0) Then
            response.write "<tel_rep>" & "NON" & "</tel_rep>"
    Else response.write		"<tel_rep>" & "OUI" & " </tel_rep>"
    End If
    Et c'est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (CInt(Mid((RsUser("type_acces")),3,1)) = 0) Then
            response.write "<tel_rep>" & "NON" & "</tel_rep>"
    Else response.write		"<tel_rep>" & "OUI" & "</tel_rep>"
    End If

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème d'utilisation de la fonction RECHERCHEV
    Par merlubreizh dans le forum Excel
    Réponses: 3
    Dernier message: 27/02/2009, 08h35
  2. Réponses: 3
    Dernier message: 10/12/2008, 22h18
  3. problème d'utilisation de la fonction cceps
    Par picard64 dans le forum Signal
    Réponses: 0
    Dernier message: 16/06/2008, 10h28
  4. Réponses: 4
    Dernier message: 29/05/2007, 10h03
  5. [DOS] probléme d'utilisation de la fonction CALL
    Par Benjamin_es dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 19/03/2007, 16h01

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