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 :

variable entre deux champs


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut variable entre deux champs
    Bonjour à toutes et tous,

    j'ai un probleme que je n'arrive pas à résoudre, j'ai une variable quantité qui est encoder par l'utilisateur dans un formulaire et qui doit renvoyer un tarif s'il est contenu entre deux champs de la base.
    Dans la base j'ai le champs de et le champs à=
    donc j'ai par exemple: de 1 à 20 -->renvoie le 1er tarif
    de 21 à 40 -->renvoie le 2eme tarif

    J'ai essayer de tourner ca dans tout les sens, avec une requete sql:
    Set delivery = conn.Execute("SELECT * FROM CDformat INNER JOIN (CDtarif INNER JOIN CDqtyDelivery ON CDtarif.IDformat = CDqtyDelivery.IDqty) ON CDformat.IDformat = CDtarif.IDformat WHERE de LIKE'%"&request("q_prints")&"%' OR a LIKE'%"&request("q_prints")&"%';")

    ne me permet de voir que les valeurs encodées dans les champs (si la qty est = a 1 ou a 20 etc) mais si ca sort de ces valeurs contenue dans la base je me retrouve avec une erreur "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. "
    J'ai essayer aussi avec un between mais il ne prends pas ma variable, sinon ca fonctionne en n'entrant que des param defini comme:
    SELECT * FROM CDformat INNER JOIN (CDtarif INNER JOIN CDqtyDelivery ON CDtarif.IDformat = CDqtyDelivery.IDqty) ON CDformat.IDformat = CDtarif.IDformat
    WHERE (((CDqtyDelivery.de) Between "1" And " 21"));

    svp donnez-moi un coup de main car la je suis perdue, et en + je suis un presser dans les delais.

    je remercie deja celui ou celle qui saura m"'aider.
    Valérie

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Si je comprends, tu veux récupérer le tarif par rapport au request("q_prints") ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE CDqtyDelivery.de <= '" & request("q_prints") & "' and CDqtyDelivery.a >= '" & request("q_prints") & "' "

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Rebonjour,

    D'abords merci à toi de te pencher sur mon probleme car franchement j'ai chercher partout et rien ne fonctionne.

    Ok pour le fait de ne pas répondre au avis urgent, mais ce n'est qu'en desespoir de cause que je me tourne vers le forum/// un peu a la derniere min mais bon, la prochaine fois je m'y prendrai plus tot.

    Oui c'est bien cela que je veux faire, mais malgré ce code ici plus bas il ne trouve pas la correspondance de la ligne tarif, il m'affiche toujours la ligne 1 meme avec des valeurs diff de la qty.

    Pourtant j'ai fait simple, j'ai retirer le lien (qui ne servait a rien dans la phrase sql, car les frais de ports ne varient qu'en fonction de la quantité)

    J'ai donc mes deux champs dans ma table:
    CDqtydelivery:
    champs 1 de
    champs 2 à

    n'y a t'il pas un moyen de faire un calcul dans un champs avec les nombres "entre" le champs de et le champs a?
    evidement j'ai 7lignes de valeurs avec 7 tarifs différents et je ne vais pas taper les quantités jusqu'a 1000....


    et cette phrase qdl qui ne trouve pas : en voici alors la syntaxe:
    (idem que cella que tu as taper ici plus bas)

    Set delivery = conn.Execute("SELECT * FROM CDqtyDelivery WHERE CDqtyDelivery.de <= '" &request("q_prints")&"' AND CDqtyDelivery.a >= '" & request("q_prints") & "';")


    et + bas la ou le tarif doit s'afficher:

    <%=delivery("tarifBE")%>

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Tes champs DE et A sont de quel type dans ta base de données ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    de type text...

    peut-être a cause de cela, j'aurais dû les mettre en nombre?

    en fait apres avoir bien tester plusieurs qty différentes, je m'appercois qu'il ne va jamais + loin que la deuxieme ligne:

    donc les tarifs sont bons jusqu'a la qty= 85

    et a la qty86 j'obtiens une erreur:

    ADODB.Field error '80020009'
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    cette valeur (86) est ma 3eme ligne (de 86 à 100)

    a partir de la qty 100 (3eme ligne et jusqu'a la derniere) il m'affiche le tarif de la 1ere ligne.

    bizarre...

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Je pense, en effet, qu'il serait plus judicieux de mettre tes champs en type numérique.
    Dans ce cas, il faudra que tu enlèves les quotes dans ta requête.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    En une phrase: sublime, epatant, super giga génial :o))
    Avec les champs de type nombre et les quote enlevées ca fonctionne nikel!

    Je te remercie beaucoups de m'avoir aider a résoudre ce probleme et de m'avoir consacrer un peu de ton temps et de ton experience.

    Souvent quand on est trop longtemps dedans on n'arrive plus a bien raisonner ou alors on arrive a des conclusions debile.

    Et comme cela fait longtemps que je n'aie pas travailler sous asp et access, c un peu dur a s'y remettre, du moins sur certaines chose.

    Merci encore

    Vali

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

Discussions similaires

  1. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40
  2. [access] différence entre deux champs
    Par loutente dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/08/2005, 15h57
  3. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52
  4. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36
  5. recherche valeur maximale entre deux champs
    Par maysa dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/05/2005, 09h40

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