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

VBA Access Discussion :

Exécuter une requête SQL avec des dates VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Décembre 2016
    Messages : 62
    Par défaut Exécuter une requête SQL avec des dates VBA
    Bonjour,

    Je ne sais pas si je dois posté ça sur le forum VBA access ou SQL

    je pensais que ça serait beaucoup plus simple mais je tourne en rond et j'ai besoin de votre aide.

    J'ai une table avec un champ date_usinage_max de type date/heure dans lequel sont stockées des dates au format dd.mm.yyyy (format système)

    J'ai également 2 variables de type date "datedebut" et "datefin"

    Dans mon code vba, j'utilise ces 2 variables pour afficher des dates puis je voudrais exécuter une requête SQL de recherche des éléments entre datedebut et datefin avec le code ci-après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT * FROM j_commandes_articles WHERE date_max_usinage BETWEEN #" & datedebut_sql & "# AND #" & datefin_sql & "# ;"
    Mon souci est que je ne sais pas comment "convertir" mes dates au format SQL (mm/dd/yyyy) car ça me génère une erreur de syntaxe.

    Comment dois-je procéder ?

    En vous remerciant pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut
    Bonjour,

    L'une ou l'autre de ces formulations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sSQL = "SELECT * FROM j_commandes_articles WHERE date_max_usinage BETWEEN #" & Format(datedebut_sql, "yyyy-mm-dd") & "# AND #" & Format(datefin_sql, "yyyy-mm-dd") & "# ;"
    sSQL = "SELECT * FROM j_commandes_articles WHERE date_max_usinage BETWEEN #" & Format(datedebut_sql, "mm/dd/yyyy") & "# AND #" & Format(datefin_sql, "mm/dd/yyyy") & "# ;"
    Bien vérifier que est date fin est bien prise en considération (à cause des heures), sinon ceci peut aussi être utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT * FROM j_commandes_articles WHERE date_max_usinage >= #" & Format(datedebut_sql, "mm/dd/yyyy") & "# AND date_max_usinage < #" & Format(datefin_sql + 1, "mm/dd/yyyy") & "#;"
    Cordialement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Décembre 2016
    Messages : 62
    Par défaut
    Bonsoir,

    Merci pour les réponses et effectivement la première possibilité est la bonne mais pourquoi ?
    Une date sous SQL ne doit pas être passée au format "américain" (mm/dd/yyyy) ?

    Merci pour l'éclaircissement

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 581
    Par défaut
    bonsoir,
    Citation Envoyé par the_qd Voir le message
    Bonsoir,

    Merci pour les réponses et effectivement la première possibilité est la bonne mais pourquoi ?
    Une date sous SQL ne doit pas être passée au format "américain" (mm/dd/yyyy) ?

    Merci pour l'éclaircissement
    parce que yyyy-mm-dd est le format international et qu'il passe partout!

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

Discussions similaires

  1. Exécuter une requête SQL avec un timer sans utiliser de next
    Par didoudek dans le forum Bases de données
    Réponses: 5
    Dernier message: 24/01/2021, 16h30
  2. créer une requête sql avec la date du jour
    Par Deephaser dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 17/05/2019, 11h33
  3. Exécuter une requête SQL avec Hibernate Interceptor
    Par top007 dans le forum Hibernate
    Réponses: 0
    Dernier message: 13/08/2014, 11h47
  4. [AC-2003] Resultat de requête SQL avec des dates incorrect
    Par rockin-bones dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/05/2011, 14h35
  5. Réponses: 1
    Dernier message: 03/04/2009, 10h09

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