Comparer deux dates [Résolu]

faffomizou 3 Messages postés samedi 3 octobre 2009Date d'inscription 20 janvier 2010 Dernière intervention - 20 janv. 2010 à 10:50 - Dernière réponse : faffomizou 3 Messages postés samedi 3 octobre 2009Date d'inscription 20 janvier 2010 Dernière intervention
- 20 janv. 2010 à 14:01
bonjour tt le monde
q un ptit pblm
je suis entrain de developper une petilte application de gestion d'inventaire
je dois faire du statistiques
je veux comparer la date que j'ai entré dans le DateTimePicker avec les dates qui existent dans la table "Matériel" de la base de donnée "inventaire" pour afficher le nombre des entrées aprés la date que g précisé mais g pas pu l'exécuter le Debug me signale "Type de données incompatible dans l'expression du critère."
voila le code

Dim nombre As Integer
Dim MyConnexion2 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Application.StartupPath + "\Inventaire.mdb")
Dim Mycommand2 As OleDbCommand = MyConnexion2.CreateCommand()
Mycommand2.CommandText = "SELECT Count(*) As nombre FROM Matériel WHERE Date_achat>='" + DateTimePicker1.Value.Date + "'"
MyConnexion2.Open()
Dim myReader2 As OleDbDataReader = Mycommand2.ExecuteReader()
'se bloque ici dans Mycommand2.ExecuteReader()
Do While myReader2.Read
txt_Date.Text = myReader2.GetValue(nombre)
Loop
myReader2.Close()
MyConnexion2.Close()

merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 20 janv. 2010 à 12:54
3
Merci
Allez, je te montre ce qu'il t'es possible de faire :

        Dim oConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=""C:\a.mdb""")
        Dim oCmd As OleDbCommand = oConn.CreateCommand()
        oCmd.CommandText = "SELECT COUNT(0) FROM `Matériel` WHERE `Date_achat`>=#" & DateTimePicker1.Value.ToString("yyyy-MM-dd") & "# "
        oConn.Open()
        With oCmd.ExecuteReader()
            .Read()
            TextBox1.Text = .GetValue(0).ToString()
            .Close()
        End With
        oConn.Close()


il même conseillé d'utiliser une requète parametrée :
         Dim oConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=""C:\a.mdb""")
        Dim oCmd As OleDbCommand = oConn.CreateCommand()
        oCmd.CommandText = "SELECT COUNT(0) FROM `Matériel` WHERE `Date_achat`>=p1 "
        oCmd.Parameters.Add("p1", OleDbType.DBDate).Value = DateTimePicker1.Value
        oConn.Open()
        With oCmd.ExecuteReader()
            .Read()
            TextBox1.Text = .GetValue(0).ToString()
            .Close()
        End With
        oConn.Close()




testé, ça fonctionne nickel chez moi...


Renfield - Admin CodeS-SourceS - MVP Visual Basic

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 20 janv. 2010 à 11:20
0
Merci
... WHERE Date_achat>=#" & Format$(DateTimePicker1.Value.Date, "YYYY-MM-DD & "# "

question posée de très (trop) nombreuses fois

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
faffomizou 3 Messages postés samedi 3 octobre 2009Date d'inscription 20 janvier 2010 Dernière intervention - 20 janv. 2010 à 11:40
0
Merci
merci pour la réponse mais j'ai déja essayé ceci et le pblm persiste
Commenter la réponse de faffomizou
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 20 janv. 2010 à 12:45
0
Merci
c'est une première étape, disons, le reste de ton code est bancal.

je pense nottament à 'nombre' qui démontre une incompréhension.

il y a aussi le fait que tu fasse une boucle de lecture, alros que ta requete ne ramene qu'un tuple d'un seul champ...

il y a également ce DateTimePicker1.Value.Date
qui est assez étrange...

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
faffomizou 3 Messages postés samedi 3 octobre 2009Date d'inscription 20 janvier 2010 Dernière intervention - 20 janv. 2010 à 14:01
0
Merci
merci
Commenter la réponse de faffomizou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.