none
selectionner des enregistrements selon une date (Année) RRS feed

  • 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

    jeudi 2 octobre 2014 18:22

Toutes les réponses

  • Bonsoir

    personne n'a de solution pour moi :-)

    vendredi 3 octobre 2014 12:13
  • 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



    vendredi 3 octobre 2014 13:18
    Modérateur
  • 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

    vendredi 3 octobre 2014 14:16
  • 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

    vendredi 3 octobre 2014 14:55
    Modérateur
  • 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.


    jeudi 9 octobre 2014 13:58
    Modérateur
  • Bonjour,

    On trouve la doc de DatePart pour Access

    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
    dimanche 12 octobre 2014 21:32
  • 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.

    mardi 28 octobre 2014 14:40
    Modérateur
  • 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()
    

    mardi 28 octobre 2014 18:30
  • 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 ?

    mercredi 21 février 2018 10:39