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

VB.NET Discussion :

requête entre deux dates


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut requête entre deux dates
    Bonjour,

    Je n'arrive pas à faire ma requête qui sélectionne toutes les opérations réalisées entre deux dates.

    J'ai pourtant tout essayé :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    S1 = S1 & " and Maintenance!Datem between " & CStr(Me.Cmb_date1.Value) - 1 & " and " & CStr(Me.Cmb_date2.Value) - 1
     
               S1 = S1 & " and Datem between " & Format(Me.Cmb_date1.Value, "dd/MM/yyyy") & " and " & Format(Me.Cmb_date2.Value, "dd/MM/yyyy")
     
                S1 = S1 & " and Datem='" & Format(Me.Cmb_date1.Value, "dd/MM/yyyy") & "'"
     
                S1 = S1 & " and Datem between '" & Me.Cmb_date1.Value & "' and '" & Me.Cmb_date2.Value & "'"
     
                S1 = S1 & " and Datem between '" & CStr(Me.Cmb_date1.Value) & "' and '" & CStr(Me.Cmb_date2.Value) & "'"
     
                S1 = S1 & " and Datem between '" & Format(Me.Cmb_date1.Value, "dd/MM/yyyy") & "' and '" & Format(Me.Cmb_date2.Value, "dd/MM/yyyy") & "'"
     
                S1 = S1 & " AND Datem>=#" & Format(Me.Cmb_date1.Value, "dd/MM/yyyy") & "# AND Datem<=#" & Format(Me.Cmb_date2.Value, "dd/MM/yyyy") & "#"
     
                S1 = S1 & " and Datem between " & Format(Me.Cmb_date1.Value, "mm/dd/yyyy") & " and " & Format(Me.Cmb_date2.Value, "mm/dd/yyyy")
     
                S1 = S1 & " and Datem between " & Format(Me.Cmb_date1.Value, "yyyy-mm-dd") & " and " & Format(Me.Cmb_date2.Value, "yyyy-mm-dd")
     
                S1 = S1 & " and Datem between " & Me.Cmb_date1.Value & " and " & Me.Cmb_date2.Value
     
                S1 = S1 & " and Datem between " & Me.Cmb_date1.Value & " and " & Me.Cmb_date2.Value
     
                S1 = S1 & " and Maintenance!Datem between " & CLng(Me.cmbdate1) & " and " & CLng(Me.cmbdate2)
    Avec une date ca fonctionne ... mais deux ca bug!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    Le format standart des champs date dépend du type de base de données.
    Le plus simple est d'utiliser la commande cast ou convert(voir dans l'aide)
    Pour sqlserveur(format date yyyymmdd code 112)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from table
    where convert(char(8),Champdate,112) between '20070701' and '20070731'
    Voir dans l'aide de la BDR pour le code format.
    Bon boulot Jean

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    Jpelli a raison, les dates en Access sont bornées par des #
    donc un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TABLE WHERE DATE=#20070101#
    A+

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Au lieu d'essayer toutes sortes de constructions ésotériques, utilise des paramètres SQL (OleDbParameter pour Access, SqlParameter pour SqlServer, etc).
    Il y a un tutoriel ici
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    c'est vrai que ca sert à rien de refaire ce qui est deja fait
    les sqlparameters (ou autre dbparameters) sont deja codés pour éviter tout type de problème (comme les ' dans les string aussi)

    pauvre saumonagile, vous allez nous l'user à force de le faire répéter ca
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    J'ai lu le tutoriel et je vais modifier mes habitudes.
    Merci saumonagile
    Jean

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                S1 = S1 & " and " & convert(char(8),Datem,112) & " between '" & convert(char(8),cmb_date1.Value,112) & "' and '" & convert(char(8),cmb_date2.Value,112) & "'"
    'convert' est un type est ne peut pas etre utilisé en tant qu'expression ...

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si c'est le convert d'sql que tu veux utililser, il doit etre dans la chaine de connexion et pas dans le code vb
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    C'est à dire?

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                S1 = S1 & " and convert(char(8)," & Datem & ",112)  between '" ...
    avec le convert dans la chaine de caractère, c'est sql qui va convertir

    si tu veux convertir dans vb utilise ctype(object, convertion_type) hors de la chaine
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Ouais bah ca marche pas !!!!!

    J'arrivais à le faire fonctionner avec une seule date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    S1 = S1 & " and Datem='" & Format(Me.Cmb_date1.Value, "dd/MM/yyyy") & "'"
    Mais dès que j'en mets deux ca fonctionne plus (avec between).

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    récupère la requete avec un espion et teste la dans sql directement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Ca devient trop complqiué pour moi là !

    Comment je fais un espion et comment je rentre direct dans SQL?

    Merci

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Bonjour tout le monde,

    Question à YeahYeah : C'est bien Access que tu utilises !

    Le code suivant fonctionne sous Access

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM TABLE
    WHERE ChampDate between #01/01/2004# and #31/12/2004#
    Alors pour te dépanner, tu peux créer la requête directement par code, créer un adapter qui va charger les données dans un dataset.

    A+

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Adapter?

  16. #16
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par yeahyeah Voir le message
    Ca devient trop complqiué pour moi là !

    Comment je fais un espion et comment je rentre direct dans SQL?

    Merci
    tu mets un point d'arret sur ta requete
    tu la selectionnes et tu fais shit+F9 tu obtiendras la valeur de la chaine de caractère, que tu copies dans l'éditeur de requete d'access
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S1 = S1 & " AND Datem BETWEEN #03/01/2007# AND #05/05/2007#"
    Bah quand je fais ca il me sort toutes les opérations réalisées à des dates qui sont le 3, 4, ou 5 du mois, quel que soit le mois, quel que soit l'année.

    J'avais déjà ce problème là.

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    t'as essayé avec les dates à l'envers ? à une époque (peut etre pas encore révolue) access voulait les dates sous la forme mm/jj/aaaa
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé ouais ... ca marche pas

  20. #20
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Points : 16
    Points
    16
    Par défaut
    Je suis pas sur ACCESS mais sur VB.net

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Impossible filtrer requête entre deux dates
    Par alfhcg dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/01/2012, 17h02
  2. [AC-2003] Probleme de requête entre deux date
    Par Walid(Tun) dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/09/2010, 13h01
  3. recherche entre deux dates dans une requête
    Par emmanuel4945 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/11/2006, 21h42
  4. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 13h50
  5. Requête entre deux dates
    Par jedwiller dans le forum Access
    Réponses: 13
    Dernier message: 17/05/2006, 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