IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Recherche par mois - annee


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut Recherche par mois - annee
    Bonour tout le monde
    Svp j'ai vraiment besoin d'aide
    J'ai dans ma table ( Factory ) un champs de type date nomme ( EngageDate ) .. l'enregistrement des records est de cette facon ( dd-MM-yyyy )
    Comment filtrer les records et les afficher sur ma DataGridView1 lorsque je choisis le mois par ComboBox1 et l'annee par ComboBox2
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Imports System.Data.OleDb
    Public Class Form1
        Dim Conne As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DataFactory.mdb;persist security info=false")
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Call Fill_Data_From_Table()
            For Mois = 1 To 12
                ComboBox1.Items.Add(Mois.ToString("00"))
            Next
            For Annee = 2019 To 2030
                ComboBox2.Items.Add(Annee.ToString("00"))
            Next
        End Sub
        Public Sub Fill_Data_From_Table()
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter("Select * From Factory", Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try
        End Sub
    End Class
    Merci beaucoup d'avance pour l'aide
    Cordialement
    MADA

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Idelament, stocker une date dans un champs de type date c'est mieux, la seconde option c'est de stocker dans un format de type yyyy-MM-dd , car ainsi tu peux facilement fait where madate> '2018-12-01'



    Sinon pour la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from Factory WHERE [EngageDate] Between #" + dt_start + "# and #" + dt_end + "#

  3. #3
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Merci beaucoup mermich
    Tres gentil de votre part
    Svp comment integrer cette ligne dans mon code pour filtrer les records j'ai pas pu ecrire le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter("Select * from Factory WHERE [EngageDate] Between #" + dt_start + "# and #" + dt_end + "#", Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try
        End Sub
    Amicalement
    MADA

  4. #4
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Salut Mada,

    La requête de Mermich devrait convenir, mais il te faut affecter les dt_start et dt_end à partir de tes Combos, sans oublier d'ajouter le jour (cela peut être toujours le 1er).
    Pour bien affecter ces variables, il faudrait t'assurer du format des champs dans la DB (est-ce réellement des dates ou est-ce des strings, et dans quelle forme yyyy/mm/dd ou dd/mm/yyyy ou mm/dd/yyyy).

    Par exemple, ponstituer la variable dt_start pour le format dd/mm/yyyy pourrait s'écrire comme ceci : dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text.

    J'espère que ceci t'aidera ...

  5. #5
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Bonsoir Phil Rob
    Bonsoir maitre
    Ravi de vs rencontrer dans ce sujet
    Merci beaucoup pour l'intention d'aide .. tres gentil de votre part
    Effectivement voici les valeurs dans ma table
    Nom : p_1358zflb91.jpg
Affichages : 154
Taille : 60,8 Ko
    Nom : p_13583vl3f1.jpg
Affichages : 180
Taille : 58,7 Ko
    Cordialement
    MADA

  6. #6
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Le code ci-dessous devrait convenir mais je perçois 2 problèmes :

    1. Tes Combos 1 et 2 permettent de définir une date, mais celle du début ou celle de fin ? et comment définir l'autre ?
    2. Je ne suis pas sûr que ce soit bien d'écrire ce code sous ComboBox2_SelectedIndexChanged. Je crois qu'un bouton "Cherche" cliqué quand tu veux serait mieux pour tenir compte des différents paramètres présents sur l'écran, surtout si tu dois ajouter des Combos 3 et 4 ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    ' Les déclarations 
    Dim WHEREParte1 As String
    Dim WHEREParte2 As String
    Dim ChaineSQL As String
    Dim dt_start As String
    Dim dt_end As String
     
    ' Les affectations
    dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
    dt_end =    ... à constituer de la ême manière que dt_start
     
    WHEREParte1 = "FORMAT(" & EngageDate & " , 'dd/MM/yyyy')" & " BETWEEN " & "'" & dt_start & "'"
    WHEREParte2 = "'" & dt_end & "'"
    ChaineSQL = "SELECT * FROM Factory WHERE " & WHEREParte1 & " AND " & WHEREParte2
     
    'Ton code de lecture de la db
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter(ChaineSQL, Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try

  7. #7
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Merci beaucoup pour le code
    J'ai seulement une faute au niveau du EngageDate WHEREParte1 = "FORMAT(" & EngageDate & " , 'dd-MM-yyyy')" & " BETWEEN " & "'" & dt_start & "'".
    EngageDate is not declared.it may be inaccessible due to its protection level
    Amicalement
    MADA

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Salut

    A tenter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHEREParte1 = "FORMAT(EngageDate,'dd/MM/yyyy') BETWEEN '" & dt_start & "'"
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Oui Mada, EngageDate est le nom du champ et il doit placé comme tel.
    La correction de ProgElecT te donne la bonne écriture, sans doute l'as-tu déjà constaté ...

    Je ne reviendrai plus sur le forum avant tard ce soir.

    Bonne journée,

  10. #10
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Bonjour cher ProgElect
    Merci beaucoup pour l'aide
    Merci mon cher ami depuis Vb6
    J'ai essaye avec ce code de cette facon .. pas d'erreur mais malheureusement aussi rien ne s'affiche sur DataGridView1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
        Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
     
            Dim WHEREParte1 As String
            Dim WHEREParte2 As String
            Dim ChaineSQL As String
            Dim dt_start As String
            Dim dt_end As String
     
     
            dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
            dt_end = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
     
            WHEREParte1 = "FORMAT(EngageDate  , 'dd-MM-yyyy')" & " BETWEEN " & "'" & dt_start & "'"
            'WHEREParte1 = "FORMAT(EngageDate,'dd/MM/yyyy') BETWEEN '" & dt_start & "'"
            WHEREParte2 = "'" & dt_end & "'"
            ChaineSQL = "SELECT * FROM Factory WHERE " & WHEREParte1 & " AND " & WHEREParte2
     
     
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter(ChaineSQL, Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try
     
        End Sub
    Amicalement
    MADA

  11. #11
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Bonjour maitre
    Bonjour Phil Rob
    Je vous souhaite une bonne et heureuse journée
    Svp .. Lorsque vous aurez suffisamment de temps .. consulter mon code
    Amicalement
    MADA

  12. #12
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Salut (re )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
            dt_end = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
    donc dt_start et dt_end sont égaux, tu devrais avoir au moins le enregistrement pour cette journée, si il n'y a pas d'enregistrement pour cette date, tu n'auras aucun retour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
            dt_end = "29/" & ComboBox1.Text & "/" & ComboBox2.Text
    Là tu auras les enregistrement pour le mois (du 1er au 29 du mois)

    Un petit rappel, pour avoir le dernier jour du mois il ajouter 1 mois à la date dt_start moins 1 jour, mais çà on l'a déjà vue sous VB6
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  13. #13
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Merci cher ProgElect
    Malheureusement toujours pas de bon resultat .
    Amicalement
    MADA

  14. #14
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Re

    Des fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            'dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
            'dt_end = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
            dt_start = "01-" & ComboBox1.Text & "-" & ComboBox2.Text
            dt_end = "28-" & ComboBox1.Text & "-" & ComboBox2.Text
     
            'WHEREParte1 = "FORMAT(EngageDate,'dd/MM/yyyy') BETWEEN '" & dt_start & "'"
            WHEREParte1 = "EngageDate BETWEEN '" & dt_start & "'"
            WHEREParte2 = "'" & dt_end & "'"
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  15. #15
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Cher ProgElect
    Avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
     
            Dim WHEREParte1 As String
            Dim WHEREParte2 As String
            Dim ChaineSQL As String
            Dim dt_start As String
            Dim dt_end As String
     
            dt_start = "01-" & ComboBox1.Text & "-" & ComboBox2.Text
            dt_end = "28-" & ComboBox1.Text & "-" & ComboBox2.Text
            WHEREParte1 = "EngageDate BETWEEN '" & dt_start & "'"
            WHEREParte2 = "'" & dt_end & "'"
            ChaineSQL = "Select * From Factory Where " & WHEREParte1 & " And " & WHEREParte2
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter(ChaineSQL, Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try
     
        End Sub
    J'ai eu cet erreur : Type de donnees incompatible dans l'expression du critere.
    Cordialement
    MADA

  16. #16
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,
    Cher Mada () ...

    J'ai bien vérifié mes codes, la bonne syntaxe est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    ' Les déclarations 
    Dim WHEREParte1 As String
    Dim WHEREParte2 As String
    Dim ChaineSQL As String
    Dim dt_start As String
    Dim dt_end As String
     
    ' Les affectations     EN PRENANT EXEMPLE SUR TON CODE (tu cherches du 1er au 28 du même mois)
    dt_start = "01/" & ComboBox1.Text & "/" & ComboBox2.Text
    dt_end =   "28/" & ComboBox1.Text & "/" & ComboBox2.Text
     
    ' Les parties du Between, avec la commande Format corrigée
    WHEREParte1 = "FORMAT( EngageDate , 'dd/MM/yyyy')" & " BETWEEN " & "'" & dt_start & "'"
    WHEREParte2 = "'" & dt_end & "'"
     
    ' La chaine SQL pour exécution
    ChaineSQL = "SELECT * FROM Factory WHERE " & WHEREParte1 & " AND " & WHEREParte2
     
    ' Ton code de lecture de la db
            Try
                Dim da As New OleDbDataAdapter
                Dim dt As New DataTable
                dt.Clear()
                da = New OleDbDataAdapter(ChaineSQL, Conne)
                da.Fill(dt)
                DataGridView1.DataSource = dt
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try
    Veux-tu bien réessayer ce code ?

    Si cela ne fonctionne pas, tu peux envoyer une partie de ton programme (qui peut être exécutée) et je testerai ce soir.

    Bonne journée,

  17. #17
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    SUITE ...


    Quand tu essayes mon code et que ça ne fonctionne pas, tu peux aussi faire les modifications suivantes (pour le cas où la commande FORMAT serait moins "puissante" que je le coirs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ' Les affectations     EN PRENANT EXEMPLE SUR TON CODE (tu cherches du 1er au 28 du même mois)
    dt_start = "01-" & ComboBox1.Text & "-" & ComboBox2.Text                ' Remplacement des slashes par des tirets
    dt_end =   "28-" & ComboBox1.Text & "-" & ComboBox2.Text               ' Remplacement des slashes par des tirets
     
    ' Les parties du Between, avec la commande Format corrigée
    WHEREParte1 = "FORMAT( EngageDate , 'dd-MM-yyyy')" & " BETWEEN " & "'" & dt_start & "'"               ' Remplacement des slashes par des tirets
    WHEREParte2 = "'" & dt_end & "'"
    A ce soir ...

  18. #18
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Bonsoir maitre
    Merci beaucoup pour l'aide
    Maintenant avec ces deux codes .. lorsque je choisis le mois par ComboBox1 alors s'affichera sur DataGridView1 d'une facon excellente tous les records dont le mois selectionné
    Par exemple je choisis par ComboBox1 le mois (08) alors s'affichera par exemple :
    14-08-2010
    12-08-2013
    06-08-2017
    23-08-2019
    Mais lorsque je choisis l'annee par ComboBox2 .. rien ne se passe
    Normalement je choisis comme exemple le mois par ComboBox1 (08) s'affichera ces records :
    14-08-2010
    12-08-2013
    06-08-2017
    23-08-2019
    ......Et ensuite je choisis l'annee par ComboBox2 par exemple 2017 .. s'affichera sur DataGridView1 le record ( 06-08-2017 )
    Merci beaucoup d'avance pour l'aide
    Amicalement
    MADA

  19. #19
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonsoir Mada,

    Sûrement une petite erreur dans la constitution des variables dt_start et dt_end.

    Je t'envoie ci-joint, un projet de test pour ton problème DB_FechasMada.zip. La DB (Access 2013) est dans le dossier du projet.

    Avant d'entrer dans ce projet, je te propose de regarder la video https://www.dropbox.com/s/kjgmbmqaeh...sMada.mp4?dl=0, de sorte à savoir comment utiliser le programme.

    Excuse-moi si projet contient des objets parfois bizarrement nommés, c'est du au fait que je me suis servi d'une application de test réalisée pour un forum en langue espagnole.

    J'espère que ce projet te permettra de mettre au point ta requête ...

    Bonne soirée,

  20. #20
    Membre régulier Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 253
    Points : 123
    Points
    123
    Par défaut
    Bonsoir Phil Rob
    Tres gentil de votre part maitre
    Nous vous trouvons toujours à l'avant-garde dans les moments difficiles
    Impeccable solution et super fichier
    Parfaitement resolu
    Cordialement
    MADA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche par mois sur plusieurs années
    Par meteor26 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/02/2013, 20h55
  2. [XL-2010] Recherche par mois
    Par webce dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2012, 01h54
  3. requête sql pour recherche par mois
    Par mahboubi dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/01/2009, 09h05
  4. [MySQL] recherche par mois
    Par kaking dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 28/10/2008, 14h49
  5. Recherche par mois précédent dans formulaire
    Par Alexandr dans le forum Access
    Réponses: 13
    Dernier message: 07/09/2006, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo