Ré affichage dans un DataGridVew créé avec l'assistant

Signaler
Messages postés
18
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
17 février 2012
-
Messages postés
18
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
17 février 2012
-
Bonjour à tous...

Mon problème: J'ai une Form avec un DataGridView créé par l'assistant de Visual Studio, relié à une base Access.
Je voudrai ajouter deux TextBox dans lesquels j'entrerai des dates, et un bouton qui ferait afficher dans le DataGridView les données comprises entre les deux dates . Je sais faire dans un autre Form, remplir un DataGridView par programmation, avec contrôles dates, mais là je sèche sur ce DataGridView créé par assistant.

Je suis moins que débutant, mais çà je pense que c'est visible...

3 réponses

Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
3
Bonjour,
primo il faut mettre deux DateTimePicker sur votre Form (Date début et date fin)
un boutton et biensur vot datagridview et vous mettez ce code dans l'évenement Click de votr button :


Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If Datedebut.Value = Datefin.Value Then
Me.tatableBindingSource.Filter = "deffet=' " & Datedebut.Value.ToShortDateString().ToString & "'"
Me.tatableBindingSource.Sort = "code, souscripteur, ville, deffet"
DataGridView1.Visible = True
Me.DataGridView1.DataSource = Me.tatableBindingSource
DataGridView1.AutoResizeColumns()
Else
Me.tatableBindingSource.Filter = "deffet>= " + "'" + Datedebut.Value.ToShortDateString().ToString + "'" + " AND deffet <=" + "'" + Datefin.Value.ToShortDateString().ToString + "'"
Me.tatableBindingSource.Sort = "deffet ASC , souscripteur , ville , CODE"
DataGridView1.Visible = True
Me.DataGridView1.DataSource = Me.tatableBindingSource
DataGridView1.AutoResizeColumns()
End If

End Sub

deffet = le nom de la colonne de la date à filtrer dans votre base de données.

si vous rencontrez un prob fais moi un retour pour voir ensemble si non bon code.
Messages postés
18
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
17 février 2012

Merci pour la réponse, je viens de tester ton code,
Il y a semble t'il une erreur de syntaxe dans cette ligne , il manquerait un " après AND

Me.tatableBindingSource.Filter = "deffet>= " + "'" + Datedebut.Value.ToShortDateString().ToString + "'" + " AND deffet <=" + "'" + Datefin.Value.ToShortDateString().ToString + "'"

Après avoir mis les ", j'ai une erreur qui dit: La conversion de la chaîne "Dates>='01/01/2012''" en type 'Long' n'est pas valide.
Messages postés
18
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
17 février 2012

En fait mon projet n'est pas trop compliqué, je désire juste faire un prg qui gère des sorties vélo, (faut bien s'occuper à la retraite) sur Bdd Access
Avec colonnes: N°,Dates,Distance,Durée,Température,Moyenne,Direct_vent,Force_vent,Itinéraire,Commentaire
Il se composerait d'une Form avec un datagridview affichant certaines de ces colonnes (sauf N°,Itinéraire et Commentaire).
avec en plus des contrôles placés à côté du grid, pour tous les champs de la table.
Le Datagrid ne serait pas en saisie, et en sélectionnant une ligne, les contrôles se rempliraient automatiquement, les modifications et créations se feraient par ces contrôles.
En ouverture le datagrid afficherait tous les enregistrements de la Table.
J'aimerai également pouvoir faire un affichage des données comprises entre deux dates, soit dans la même Form soit dans une autre.
J'ai essayé de créé le Datagridview en faisant glisser la table sur la form, et j'ai créé les contrôles par la même manière, çà fonctionne, mais quand je veux supprimer une ligne dans le grid par le BindingNavigatorDeleteItem, la ligne s'efface mais réapparait à la prochaine ouverture de la Form, il faut en plus cliquer sur le BindingNavigatorSaveItem, ce qui n'est pas intuitif.
J'espère ne pas trop saouler avec un problème qui paraîtra simple à beaucoup, mais qui est pour moi assez duraille...