Auteur de questions
selectionner des enregistrements selon une date (Année)

Discussion générale
-
Bonsoir
je bloque sur cette manip.
voici mon schéma
JE choisi la date dans le comboBox année puis en cliquant sur actualiser, une requête sql est exécutée pour retourner
les informations correspondantes dans la table édition à partir du champ DateEdit;
je n'arrive pas à écrire la synthase exacte de requête sql . j'utilise access et vb.net 2010
Merci
- Type modifié Nina ZaekovaMicrosoft contingent staff, Moderator mardi 28 octobre 2014 14:39
Toutes les réponses
-
-
Bonjour,
vous pouvez essayer la requête sql suivante (ça marche aussi avec variable de type varchar à cause d'utilisation de CAST):
SELECT * FROM Votretable WHERE DATEPART(YEAR, DateEdit)=(CAST(@Annee AS int))
où la variable Annee doit être defini à VB et contient l'année que vous indiquez dans le ComboBox. Par exemple comme ça:
Dim Annee As Integer
Annee = CInt(VotreComboBox.DataSource)Cordialement,
Nina
- Modifié Nina ZaekovaMicrosoft contingent staff, Moderator vendredi 3 octobre 2014 14:02
-
Bonsoir Nina
j'ai essayé le code
'Nombre d'edition Connexion.Open() Dim Requete As String = "select count(*) from Editiontaxes WHERE DATEPART(YEAR, DateEdit)=(CAST(Annee AS int)) " Dim Commande As New OleDbCommand(Requete, Connexion) Try Text_Nb_Tedt.Text = Convert.ToInt32(Commande.ExecuteScalar) Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try Commande.Dispose() Connexion.Close()
mais j'ai cette erreur . en écrivant @annee. je précise que j'utilise access comme base de données -
Bonsoir,
Alors, essayer de definir Annee de type string (qui consiste la valeur dans le ComboBox). Et changez le troisième ligne de votre code avec cela:
Dim Requete As String = "select count(*) from Editiontaxes WHERE DATEPART("YYYY", DateEdit)="+Annee
Cordialement,
Nina
-
Bonjour,
Est-ce qu'il y a de progrès dans votre souci? Avez-vous testé la solution proposée? Merci de partager avec nous cette solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution?
Cordialement,
Nina
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
- Modifié Nina ZaekovaMicrosoft contingent staff, Moderator jeudi 9 octobre 2014 13:58
-
Bonjour,
On trouve la doc de DatePart pour Access là
Il aurait été appréciable que le type de chaque argument y soit indiqué explicitement, mais pour ce qui est d'interval, on voit parmi les valeurs proposées "yyyy", mais pas "year". Je soupçonne au demeurant qu'il soit obligatoire de mettre ça entre guillemets (ou apostrophes valant guillemets).
Et puis la chaîne d'entrée si je ne m'abuse c'est DateEdit. Si on veut juger de son format il serait bien de savoir ce qu'il y a dedans.
En tout cas, ce message devrait déclencher le réflexe de vérifier ce qu'il y a dans tous les arguments -avant même de poser une question dans un forum, si je puis me permettre ...
Je n'ai pas assez tenu compte de la précision "en écrivant année". Euh ... Y a-t-il un @ ou pas ? Il y est dans la phrase en dessous, pas dans la requête.
- Modifié Gloops dimanche 12 octobre 2014 21:38
-
Bonjour,
J'ai modifié le type de votre question à « Discussion générale » parce que vous n’êtes pas revenu avec les informations sollicitées. Si vous avez plus de temps pour réexaminer la question et fournir plus d'informations, n'hésitez pas à modifier le type du thread à « Question ». Si le problème est résolu, s’il vous plaît partagez la solution avec nous afin que la réponse puisse être trouvée et utilisée par d'autres membres de la communauté ayant des questions similaires.
Merci !
Cordialement,
Nina
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
Bonsoir à toute la communauté ! toutes mes excuses pour se silence, je travaille sur plusieurs projets!!!!
ok
les solutions proposées ne marchent pas j'ai donc utilisé un Between entre deux variable date pour récupérer
les informations voulues.
Par contre je voudrais que vous m’aidiez à examiner ce code , c'est toujours dans l'optique de sélectionner des enregistrements en récupérant seulement la partie Année du champ dateEdit et de le comparer avec la partie Année de la date système . s'il y a égalité les enregistrements correspondants sont sélectionnés.
Connexion.Open() Dim Requete As String = "select objectif from objectifs where datepart(yyyy, annee) = datepart(yyyy,date())" Dim Commande As New OleDbCommand(Requete, Connexion) Try Console.WriteLine(Commande.ExecuteScalar) Catch ex As Exception System.Console.WriteLine(ex.Message) End Try Catch ex As Exception System.Console.WriteLine(ex.Message) End Try 'Commande.Dispose() Connexion.Close() Console.ReadKey()
-
Bonjour,
Tiens, il n'y a plus eu personne, là-dessus. Le projet est terminé j'imagine ?
Apparemment, sur l'extrait de code précédent, pour l'examiner ça aurait aidé de savoir ce qu'il donne à l'exécution.
Pour ce qui est du yyyy, est-ce qu'on peut se passer de guillemets ?