salut, tu es sur que les dates sélectionnées sont bien formatées lors de la requête SQL?
salut, tu es sur que les dates sélectionnées sont bien formatées lors de la requête SQL?
Bonjour ^^
J'ai tout mis au format texte....
Bonjour ^^
Je n'arrive pas à avancer à cause de cette erreur....
Serait-ce dut à mes requêtes (qui serait incorrecte ?) ?
A une erreur dans le code ?
Je ne sais pas, j'ai beau m'y attabler avec des collègues, ils ont proposés des solutions diverses et variées, mais cela ne marche toujours pas....
il faut que tu dises où ça plante dans ton code, parce que ça fait un peu long !
Et bien toujours au même endroit....
LesJ'ai pourtant fait des modifications, et je fesais du pas à pas, mais si je mettais pas du 'try.... catch ex as exception... end try', il s'arrêtait sur l'erreur et n'avançait plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
si ta requête c'est
"SELECT DATE_INITIAL FROM HDC_VW_INCIDENTS WHERE DATE_INITIAL between Date_deb.text and Date_fin.text"
tu m'étonnes que ca se gauffre
Il faudrait voir à utiliser des paramètres pour que ce soit des valeurs de date qu'il utilise dans between
Met un point d'arrêt avant le try de ton execute reader et donne le contenu de ta requête.
J'ai pas très bien compris ta dernière phrase...Envoyé par bidou
@ boulete :
J'ai fait ce que tu m'as demandé, mais il n'y a rien qui s'affiche...
là tu lui demandes de chercher une date comprise entre Date_deb.text et Date_fin.text. Tel que tu l'as écrit, ce ne sont pas les valeurs contenues par ces variables qui sont utilisées dans la requête mais le nom des variables.
Pour faire ce que tu veux on utilise généralement des paramètres de requête. Tu trouveras des exemples dans l'aide en cherchant sur OleDbCommand.Parameters.Add par exemple
Ca veut dire qu'il n'y a rien dans ta requête ...
Pour déterminer quelle peut-être l'erreur générée lors de l'exécution de la commande, il faut regarder ce que tu lui envoies, en l'occurence le contenu de ta requête.
Si tu testes ta variable 'requete' et qu'il n'y a rien dedans, alors tu envoies une commande vide, ce qui explique le plantage.
Regarde :
Là, tu initialises ton sqlIf Date_deb.Text <> "" And Date_fin.Text <> "" Then
requete = "SELECT DATE_INITIAL FROM HDC_VW_INCIDENTS WHERE DATE_INITIAL between Date_deb.text and Date_fin.text"
Else : MsgBox("Il n'y a pas d'incident à ces dates")
End If
Là, tu attribues ton sql à ta commande. On est bien d'accord que si requete est vide, la commande est également vide.Mycommand.CommandText = requete
Et là tu initialises ton datareader à partir de ta commande. SI ta commande est vide, ça plante.Try
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
L'idée est donc de vérifier le contenu de ton sql, qui doit merder.
C'est pour cela que je te disais de mettre un point d'arrêt avec le try, pour tester la variable requete.
Si tu me dis qu'elle est vide, c'est que tu ne passes même pas dans ton if ... then ... etc .
Vois-tu ?
Mais soit dit en passant, je pense plutot que ta reque^te est fausse tout simplement.
Déjà comme te le disait bidou, tu as mis le nom des variables dans ta requête au lieu de mettre la valeur.
Il faut écrire :
Déjà ça devrait être mieux ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part requete = "SELECT DATE_INITIAL FROM HDC_VW_INCIDENTS WHERE DATE_INITIAL between #" & Date_deb.text & "# and #" & Date_fin.text & "#"
Excusez moi de vous embêtez tant, mais je débute en vb.net… Et il y a plus ou moins des erreurs, que j’arrive parfois à régler et d’autre pas…
Je vous remercie de votre gentillesse de bien vouloir à chaque fois me répondre et aussi de votre grande patience…
Et en plus, pour ta requête, si tu as sur une base access, tu dois d'une part gérer tes dates entre #, et en plus les présenter au format américain (mm/dd/yyyy)
d'où l'intérêt des paramètres
Bonjour ^^
Merci pour vos réponses , j'ai mis des # aussi dans les autres requêtes et ça marche mieux mais bon, apparement le programme ne fonctionne pas encore correctement...
Je vais essayer de mettre mes dates en format américain mais dans ma base access, ceux ci sont de format normale autrement dit de format français.
Dans Access, les dates sont stockées en format français, mais lorsque tu exécutes une requête sql, le format de date retenu pour les comparaisons est obligatoirement format américain ...
Sinon tu fais comme te disais Bidou, tu utilises des paramètres pour ta requête ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager