Recherche sur une bdd

Résolu
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012 - 28 oct. 2010 à 13:52
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 29 oct. 2010 à 10:43
Bonjour
je suis à la recherche d'une solution pour faire une recherche dans ma bdd access
je m'explique
j'ai une bdd en access avec une colonne Date
dans ma colonne c'est afficher 01/01/2010
02/01/2010
01/01/2008
05/08/2009
25/12/2009
03/01/2010 ect...ect
dans un combobox je voudrais entrer 2010 et que mon application me donne toutes les dates qui comportent 2010 dans leurs dates(text).

Pour le moment j'ai essayé avec
Where date ='" & ComboBox1.Text & "'"
mais ce type de code ne fonctionnent pas pour cette recherche.

si qq'un a une idée

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2010 à 15:00
Oups : Year renvoie un chiffre, pas un texte : il ne faut donc pas de ' d'encadrement de la valeur comparée.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2010 à 14:59
Salut

Where Year([date]) = '" ...

Attention aux noms de champs qui sont aussi des mots réservés du langage : Utilise les crochets

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
28 oct. 2010 à 19:58
Merci pour ta reponce
mais en fait mon code comme tu l'as bien dit pour le nom du champ reserver "Date" j'ai mis DT
donc mon code c'est exacetment
...FROM Historique Where DT ='" & ComboBox4.Text & "'"
...
lorsque je met Where year DT = '" & Combobox4.text & "'"cela ne marche pas ???
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2010 à 20:32
Et les parenthèses ?

Les crochets servent à autoriser les caractères accentués ou espaces dans les noms des champs ou pour forcer la désignation le nom d'un champ et pas l'interprétation d'un mot clé du langage.

Mais les parenthèses appartiennent à l'instruction Year. Il faut les mettre.

De plus, je t'ai précisé qu'il ne fallait pas encadrer la valeur de comparaison avec des ' puisque le champ ainsi interprété renverra un chiffre et plus un texte (en supposant qu'une date soit un texte)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
29 oct. 2010 à 10:12
bonjour Jack

tu me dit de mettre Where year DT = "..."
mais je n'ai pas présisé que mon champ est en format text et pas en format date/heure donc year ne peux pas marcher dans ce cas la?

est il possible de faire une recherche d'un mot des un texte d'un bdd access avec la meme methode?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 oct. 2010 à 10:43
NON, relis ce que j'ai écrit : je te dis de mettre
Where Year([le nom du champ]) = " & ...

Bien sûr, les ... sont là pour représenter la suite de ta syntaxe, ne va pas mettre réellement des points, réfléchis 30 sec !

Même si ton champ est de type texte, dans ce cas, tu vas utiliser une fonction pour isoler l'année dans ta date qui, elle, renvoie un chiffre.

Access n'est pas idiot et sait convertir du texte à condition qu'il ressemble à une date.
Le problème qui risque de se poser, c'est que les DB stockent et interprètent les dates au format US, donc il se peut que ton texte de date ne puisse être reconnu.
Il te suffit de faire l'essai pour le savoir (en mettant un n° de jour > 12).
En tel cas, il te faudra :
- soit utiliser du découpage de texte à la place de Year avec Mid ou Right (*)
- soit modifier le type de champ pour le mettre en vrai type Date général dans ta DB. Recommandé, surtout si tu dois faire ce genre de recherche.

(*) Tu trouveras toute l'aide qu'il te faut dans l'aide de l'éditeur VBA de Access et ces fonctions peuvent, en général, être utilisées dans une syntaxe SQL sous Access.
0
Rejoignez-nous