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

ASP Discussion :

Problème avec condition IF


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut Problème avec condition IF
    Salut,

    j'ai un problème avec une condition if then else if then else end if

    J'ai une erreur quand j'exécute mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim coutU, ConsoM, DelaiA  'variable qui stocke le coût selon les différentes cas
     
    SQL="Select b.[description], b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d'appro (j)] " & _
    " from cli_maj_extractions.T_EXTR_BASAMONT b, cli_maj_extractions.T_CALCUL_ARTICLE_AMONT a " & _
    " where A.ARTICLE = b.code_article and  b.code_article =  " & request.form("Code_Article") & ""
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open SQL, conn_SQL , 3, 3
    'tant qu'il y a des données pour un code article
    while not RS.eof
    If (RS("Groupe_art")="MRPRM" or RS("Groupe_art")="MRPRMD") then coutU= RS("Coût STd")
    Else If (RS("Coût PMP déporté")!="" or RS("Coût PMP déporté")!=999999) then coutU = RS("Coût PMP déporté")
         Else coutU=RS("Coût PMP")
    End If
    J'ai une erreur à cette ligne la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else If (RS("Coût PMP déporté")!="" or RS("Coût PMP déporté")!=999999) then coutU = RS("Coût PMP déporté")

    Merci, je sais pas peut-être est-ce la syntaxe du if qui est mauvaise !

    voici l'erreur générée :

    Type d'erreur :
    Erreur de compilation Microsoft VBScript (0x800A03FA)
    /Projet 'Intranet - AVK'/Form_AVK.asp, line 247

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    La bonne syntaxe en vbscript n'est pas

    mais :


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Merci, j'ai changé mais j'ai toujours le même problème :

    Type d'erreur :
    Erreur de compilation Microsoft VBScript (0x800A03FA)
    /Projet 'Intranet - AVK'/Form_AVK.asp, line 214


    Voici mon code :

    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
    <% 
    'sélectionne les informations relatives à notre article renseigné dans le formulaire AVK 
    dim coutU  'variable qui stocke le coût selon les différentes cas
     
    SQL="Select b.[description], b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d'appro (j)] " & _
    " from cli_maj_extractions.T_EXTR_BASAMONT b, cli_maj_extractions.T_CALCUL_ARTICLE_AMONT a " & _
    " where A.ARTICLE = b.code_article and  b.code_article =  '" & request.form("Code_Article") & "'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open SQL,conn
    'tant qu'il y a des données pour un code article
    while not RS.eof
    If rs("Groupe_art")="MRPRM" or rs("Groupe_art")="MRPRMD" then coutU= rs("Coût STd")
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then coutU = rs("Coût PMP déporté")
    	Else coutU=rs("Coût PMP")
    End If
    %>

    La ligne d'erreur est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then coutU = rs("Coût PMP déporté")

    Merci d'avance

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If rs("Groupe_art")="MRPRM" or rs("Groupe_art")="MRPRMD" then coutU= rs("Coût STd")
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then coutU = rs("Coût PMP déporté")
    	Else coutU=rs("Coût PMP")
       End IF
    End If
    A+

  5. #5
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    les espaces, dans les noms de champs, c'est pas glop en général (les accents non plus, au passage). Si tu ne peux pas faire autrement, il faut les mettre entre crochets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else If rs("[Coût PMP déporté]")<>"" or rs("[Coût PMP déporté]")<>999999 then coutU = rs("[Coût PMP déporté]")


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    C'est pas parce que tu fais deux comparaisons d'un même champ avec deux types différents. Un coup tu compares un chaîne un autre un nombre. Faudrait savoir.
    Utilises des fonctions de conversion.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre Expert
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Par défaut
    Citation Envoyé par bambino13 Voir le message
    Merci, j'ai changé mais j'ai toujours le même problème :

    Type d'erreur :
    Erreur de compilation Microsoft VBScript (0x800A03FA)
    /Projet 'Intranet - AVK'/Form_AVK.asp, line 214


    Voici mon code :

    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
    <% 
    'sélectionne les informations relatives à notre article renseigné dans le formulaire AVK 
    dim coutU  'variable qui stocke le coût selon les différentes cas
     
    SQL="Select b.[description], b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d'appro (j)] " & _
    " from cli_maj_extractions.T_EXTR_BASAMONT b, cli_maj_extractions.T_CALCUL_ARTICLE_AMONT a " & _
    " where A.ARTICLE = b.code_article and  b.code_article =  '" & request.form("Code_Article") & "'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open SQL,conn
    'tant qu'il y a des données pour un code article
    while not RS.eof
    If rs("Groupe_art")="MRPRM" or rs("Groupe_art")="MRPRMD" then coutU= rs("Coût STd")
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then coutU = rs("Coût PMP déporté")
    	Else coutU=rs("Coût PMP")
    End If
    %>

    La ligne d'erreur est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then coutU = rs("Coût PMP déporté")

    Merci d'avance

    Salut,

    De mémoire, si tu commences ta syntaxe de if comme tu le fais sur une ligne, tu l'as termine par la même occasion.

    Essaye :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while not RS.eof
    If rs("Groupe_art")="MRPRM" or rs("Groupe_art")="MRPRMD" then 
       coutU= rs("Coût STd")
    Else If rs("Coût PMP déporté")<>"" or rs("Coût PMP déporté")<>999999 then 
        coutU = rs("Coût PMP déporté")
    	Else
        coutU=rs("Coût PMP")
    End If
    End if
    end while

    De plus, évite de commencer une boucle sans vérifier ce que te retourne t'as requête

    Tu peux très bien vérifier si elle retourne >= 1 enregistrement en faisant :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if not rs.eof then
      'mon traitement si retourne valeur
    else
      response.write "Aucun article ne correspond à votre demande"
    end if

    Enfin, est ce que t'as requête retourne qqch en l'essayant directement sur SQL Server ou Access je ne sais pas ce que tu utilises

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Merci à vous pour vos réponses,

    kaiser59 tu avais raison c'était à cause de ma syntaxe ou je m'étais le if et le then sur la même ligne.


    Merci pour vos conseils et solutions.

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

Discussions similaires

  1. problème avec condition " if " et "liste" pour programme
    Par hypnotief dans le forum Général Python
    Réponses: 10
    Dernier message: 22/03/2011, 21h49
  2. [AC-2007] problème avec condition If et And
    Par Rémi GAUDINAT dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/06/2010, 19h05
  3. Parcourir ligne - Problème avec conditions
    Par JP1983 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/02/2008, 22h29
  4. [MySQL] Problème avec condition if + is_int
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 25/08/2006, 14h12
  5. Réponses: 6
    Dernier message: 15/06/2006, 15h15

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