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

Access Discussion :

Requête SQL sur dernier champs connu


Sujet :

Access

  1. #1
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut Requête SQL sur dernier champs connu
    Salut,
    J’ai un petit souci technique sur une requête SQL et je ne vois pas trop comment le résoudre. Voici le problème. J’ai une table qui contient en colonne des Produits et en ligne le prix de ces produits par mois.

    Au moyen d’un formulaire, deux champs existent :
    - le premier permet à l’utilisateur de renseigner le Nom du produit,
    - le deuxième permet à l’utilisateur de renseigner le mois.

    Le but étant de récupérer (via la requête SQL) le prix du produit en question au mois donné.
    Voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT [" & NomTable & "].[" & Mois & "] FROM [" & NomTable & "] WHERE ((([" & NomTable & "].Pdt)=" & NomPdt & "))"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set rst = db.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
    Si le mois existe dans la base, tout se passe bien, je récupère tout ce qu’il faut (i.e. le prix du produit)

    En revanche, si le mois n’existe pas, ça « plante » (puisque la requête ne trouve pas de correspondant).

    Ce que je n’arrive donc pas à faire, c’est dire à la requête que si le mois demandé par l’utilisateur n’existe pas dans la base, il faut prendre le dernier mois connu (donc le dernier prix connu).

    Merci bien.

    Ps,
    Désolé du message un peu long…

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    c'est pas à la requete de faire cela:
    dire à la requête que si le mois demandé par l’utilisateur n’existe pas dans la base, il faut prendre le dernier mois connu (donc le dernier prix connu).
    tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set rst = db.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
    if rst.eof then
       sSQL = ... 'requete pour le dernier prix connu
       rst = db.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
    end if
    ps: pour la requete utilise un regroupement sur le produit

Discussions similaires

  1. Requête SQL sur champ DATE
    Par SIADIDL dans le forum SQL
    Réponses: 10
    Dernier message: 13/05/2014, 09h28
  2. Requête SQL sur champ XML
    Par elflamby dans le forum Développement
    Réponses: 8
    Dernier message: 15/03/2011, 16h48
  3. Requête SQL sur deux champs - débutant
    Par mygeomatic dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/12/2009, 18h26
  4. Requête SQL sur une base Access, where sur un champ date
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/05/2008, 17h47
  5. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 11h33

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