p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Inscrit en
    avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 36
    Points : 6
    Points
    6

    Par défaut Requete selon conditions

    salut,

    j'ai ma table Access liée à vb6 via ADO.
    j'ai dans cette table deux champs:
    [date_emprunt] et [date_retour]
    je veux afficher les enregistrements dont le champ [date_retour] dans la table est vide et la différence entre la date système et la valeur du champ [date_emprunt]>=15 jour

    j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql="select * from emprunt where code='" & code.text & "' and date_retour="" and '" & datediff("d",date,date_emprunt)>=15 & "'
    Merci.

  2. #2
    Expert Confirmé


    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2006
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2006
    Messages : 933
    Points : 3 251
    Points
    3 251

    Par défaut

    Perso j'essaierai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql="select * from emprunt where code='" & code.text & "' and date_retour is null and date_emprunt = '" & datediff("d",date,date_emprunt)>=15 & "'
    Mais j'ai un gros doute sur l'emploi du datediff. Il existe des fonctions propres à chaque type de DB (Access, SqlServer, ....)

    Sur quelle type de DB travaillez vous ?

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : juin 2007
    Messages : 671
    Points : 1 552
    Points
    1 552

    Par défaut

    Bonjour,
    Avec le code d'abouilyas, en prenant par exemple code.text="ABC", on obtient la requête SQL suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from emprunt where code='ABC' and date_retour =" and '?'
    A la place du ?, je ne sais pas ce que VB peut donner car il ne connait probablement pas la variable date_emprunt.

    La bonne syntaxe dans Access serait (aujourd'hui)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from emprunt where code="ABC" and date_retour is null and date_emprunt <= #12/13/2012#
    ce qui s'obtient par le code VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql="select * from emprunt where code=""" & code.text & """ and date_retour is null and date_emprunt <= #" & DateAdd("d", -15, Date) & "#"

Discussions similaires

  1. Calculs dans une requete avec conditions multiples
    Par Sha1966 dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2006, 15h18
  2. [VB.net] Générer une date selon condition
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 16h12
  3. Requete avec condition
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/06/2005, 09h37
  4. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04
  5. DLLs chargées selon condition
    Par Benjamin GAGNEUX dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 12/08/2004, 18h14

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