gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012
-
29 janv. 2012 à 16:04
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
1 févr. 2012 à 08:19
Bonjour à tous...
Malgré des recherches approfondies je n'ai pas trouvé de réponse.
J'ai deux TextBox contenant des dates, je souhaite récupérer leur contenus pour les insérer dans une requête SQL (pour faire une recherche de données qui seront comprises entre ces deux dates)requête qui alimentera ensuite un DataGridView.
J'ai récupéré les contenus comme suit:
Dim datedebut As String
datedebut = Format(TextBox1.Text, "dd/mm/yyyy")
Dim datefin As String
datefin = Format(TextBox2.Text, "dd/mm/yyyy")
Je ne trouve pas la syntaxe exacte de la requête, elle commence par:
SELECT * FROM MaTable WHERE Dates BETWEEN ... Je sèche ensuite
On comprendra que je suis débutant de chez novice... Merci pour votre indulgence...
A voir également:
Sql entre deux dates
Requete sql between - Meilleures réponses
Requete sql entre deux dates - Meilleures réponses
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 29 janv. 2012 à 16:15
Bonjour,
je supposes que Dates est un champ de ta table ?
Essaye
"SELECT * MaTable WHERE Dates BETWEEN #" & datedebut & "# and #" & datefin & "#"
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012 29 janv. 2012 à 17:57
Désolé, çà ne fonctionne pas, si je réduit la requête à:
"SELECT * FROM MaTable"
le DatagridView se remplit bien...
J'en déduit que c'est la requête qui n'est pas exacte ou un problème avec les contenus des TexBox et leur format.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 29 janv. 2012 à 18:18
Dates est-il bien un champ de ta table Matable ?
(car sinon, ma foi ...)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 29 janv. 2012 à 18:19
et passe tes dates au format dd/mm/yyyy
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012 30 janv. 2012 à 13:10
Euréka!! j'ai trouvé
C'était mes lignes de déclaration de variables qui n'étaient pas correctes,
J'écrivais:
im datedebut As String
datedebut = Format(TextBox1.Text, "dd/mm/yyyy")
Dim datefin As String
datefin = Format(TextBox2.Text, "dd/mm/yyyy")
Alors qu'il fallait ajouter String avant Format comme çà:
im datedebut As String
datedebut = String.Format(TextBox1.Text, "dd/mm/yyyy")
Dim datefin As String
datefin = String.Format(TextBox2.Text, "dd/mm/yyyy")
Un grand merci, j'espère ne pas avoir été trop "boulet", à mon âge on comprends les choses moins vite
gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012 30 janv. 2012 à 17:39
Dans la série, Le Boulet, le retour...
C'était trop beau,
En fait ça fonctionne si les dates saisies se situent dans une plage se trouvant dans l'année 2012, si je fait une sélection par ex du 01/11/2011 au 30/11/2011, les données affichées commencent à la première entrée de ma base (soit le 28/07/2011) et par contre s'arrêtent bien au 30/11/2011, j'ai testé avec d'autres plages de dates de 2011 et c’est toujours pareil, j'en perds mon latin (plustôt mon VB.NET) ...
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 30 janv. 2012 à 18:04
Cela veut dire que tu cherches (question de format de date) non pas depuis le ler novembre, mais depuis le 11 janvier (et comme ton 1er enregistrement est daté du 28 juillet ...
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012 31 janv. 2012 à 08:34
J'ai changé le format par yyyy/mm/dd, mais c'est pareil.
Si j'entre une plage de dates comprises entre par exemple le 15/01/2012 et le 19/01/2012 ça fonctionne bien, seules les données comprises dans cette plage s'affichent, si je le fait avec une plage de dates en 2011 ça coince.
Est-ce que ce ne serait pas un problème avec le nom du champs de ma base "Dates" ?
J'ai lu qu'il fallait éviter ce mot dans les bases de données, qui causaient parfois des problèmes.
Une recherche par plage de dates avec paramètres passés en variables est une chose courante, c'est curieux de ne pas trouver plus de discussions à ce sujet dans les forums...
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 31 janv. 2012 à 08:38
si je le fait avec une plage de dates en 2011 ça coince.
avec quels critères ? Et "ça coince" comment ?
en me rappelant que :
la première entrée de ma base (soit le 28/07/2011)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 31 janv. 2012 à 08:40
et quel est le type/format exact donné au champ Dates de ta table ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gardoulet
Messages postés18Date d'inscriptionvendredi 23 décembre 2011StatutMembreDernière intervention17 février 2012 31 janv. 2012 à 11:35
Alors pour ucfoutu:
Ça coince du fait que si j'entre une plage de dates par exemple du 01/11/2011 au 30/11/2011, les données sont affichées jusqu'à la date butoir 30/11/2011, mais que la première donnée commence à la première entrée de ma base qui est le 28/07/2011 et non le 01/11/2011.
Si j'entre une plage de dates cette année, tout fonctionne bien, par exemple entre le 17/01/2012 et le 19/012012, m'affiche uniquement les données comprises entre ce deux dates.
Le type/format donné au champ Dates dans ma base access est Date/heure
Pour Renfield :
Ma requête est: strSql = "Select * FROM MaBase WHERE Dates BETWEEN #" & datedebut & "# and #" & datefin & "#"
Les variables datedebut et datefin sont déclarées comme suit:
Dim datedebut As String
datedebut = String.Format(TextBox1.Text, "dd/mm/yyyy")
Dim datefin As String
datefin = String.Format(TextBox2.Text, "dd/mm/yyyy")
J'ai essayé avec le format "yyyy/mm/dd", c'est pareil
J'ai essayé avec: Dim datedebut As String = String.Format("{0:g}", TextBox1.Text) idem
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 31 janv. 2012 à 11:39
Si tu continues à ne pas vouloir formater datedebut et datefin en "mm/dd/yyyy", en dépit de dit et redit plus haut, ma foi ...
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient