Filtrage et affichage

Résolu
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 - 19 sept. 2012 à 08:28
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016 - 8 oct. 2012 à 11:48
bonjour,
je suis entrain de créer en vb 2010 avec une base de donnée access , un logiciel sur la gestion des consultations dans un milieu hospitalier, c'est-à-dire de la création de la fiche de consultation jusqu'à l'enregistrement des maladies après consultations du patient afin de l'envoyer au centre de santé publique, le rapport mensuel de la zone de santé où l’hôpital se trouve.
jusque là j'ai mes rapport sur la liste des patients de l'hôpital et je créer déjà des fiches des patients de l'hôpital; mais mon problème se trouve au niveau d’élaborer le rapport mensuel des maladies des patients consulter.
je ne sais pas comment filtrer par mois pour qu'elle puisse filtrer les enregistrements de cette tranche de mois, sans oublier qu'elle doit se faire tout les mois.
est-ce que quelqu'un peu m'aider dans ce sens?
merci beaucoup.

18 réponses

galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
19 sept. 2012 à 19:02
bonjour,
ton problème n'est pas bien détaillé, comme il a dit cmarcotte si tu es en dot.net tu aura besoin d'une dataset - datatables - deux timepicker pour la date de début et date fin.
si tu as besoin d'un exemple fais moi un retour.
j'étais comme toi et grace à ce forum j'ai appris bcp de choses dans parmi ces experts cmarcotte qui m'a vraiment aider dans bcp de problémes que j'ai rencontré et je le remercie par l'occasion.



galaxy2009
3
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
27 sept. 2012 à 19:17
bonsoir,
désolé pour le retard de la préponse : voilà le code.

alors tu vas ajouter une form appelé le ce que tu veux:
sur le form tu vas ajouter:
- datagridview (que tu vas l'appeler dgv)
- deux DateTimePicker (nomé le premier datedebut et l'autre datefin)
- un boutton (nomé le "afficher")

à l'aide de l'assistant tu vas connecter votre table au datagridview(si tu ne sais pas comment faire fais moi un retour pour t'assister)

alors maintenant tu vas dans la partie du code :
dans le Load de votre form tu vas trouver cette ligne soit tu la supprime soit tu l'annule en mettant une apostrophe au début de la ligne:
'Me.registreTableAdapter.Fill(Me.tabaseDataSet.registre)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
--- de cette ligne que je parle
'Me.registreTableAdapter.Fill(Me.tabaseDataSet.registre)



'ouverture de la connection(à partir du répertoire de l'application)
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\tabase.mdb"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
sql = "select registre.* from registre"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx

'chargement du DataSet à partir du DataAdapter
dta.Fill(dts, "registre")

'chargement de la DataTable à partir du DataSet
dtt = dts.Tables("registre")
'mise à jour des données du DataAdapter
'à partir du commandbuilder
dta.Update(dts, "registre")
'si la table est vide alors
If rownum > dtt.Rows.Count - 1 Then
Me.Show()
End If
Me.registreBindingSource.DataSource = dtt
dgv.Visible = False
End Sub

dans le boutton afficher tu vas écrire ce code

Private Sub afficher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles afficher.Click

'******affichage des données pour une suele date ex:du 01/10/2012 au 01/10/2012********************

If Datedebut.Value = Datefin.Value Then

Me.registreBindingSource.Filter = "date_traitement= '" & _ Datedebut.Value.ToShortDateString().ToString & "'"
Me.dgv.DataSource = Me.registreBindingSource

'******affichage des données pour une période donnée ********************
If Datedebut.Value <> Datefin.Value Then
Me.registreBindingSource.Filter = "date_traitement >= #" + Datedebut.Value.ToString("M/dd/yyyy") + "# AND date_traitement <= #" + Datefin.Value.ToString("M/dd/yyyy") + "#"
Me.dgv.DataSource = Me.registreBindingSource

End Sub



bon courage.


galaxy2009
3
Utilisateur anonyme
30 sept. 2012 à 16:17
Bonjour,


Si tu as nommé ton Datagridview dgv comme indiqué, ce devrait être "automatique"

Me.dgv.DataSource = Me.registreBindingSource 


Sinon remplace dgv par le nom que tu as donné à ton DatagridView, ou nomme ton Datagridview dgv.
3
Utilisateur anonyme
19 sept. 2012 à 18:21
Bonjour,

Tout dépend de la manière dont tu traites tes données. Si tu utilises ADO.net avec un DataSet et des Datatables, tu peux filtrer dans ton Dataset et tes Datatable. Regarde la propriété et les classes Daatable, Dataset, Datarow et Datacolumn dans ton aide. Il y a plusieurs exemples à travers tout cela.

Tu peux aussi aller voir cela, celaet cela.
1

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

Posez votre question
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
19 sept. 2012 à 09:00
je vais juste préciser que j'imprime avec report viewer
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
19 sept. 2012 à 14:04
Salut

Ta question manque de précision technique.
Si tu veux filtrer par date, il faut que la fiche comporte une date.
Est-ce la cas ?

En supposant qu'il existe un champ 'laDate' dans chaque fiche, il suffit de créer une requète qui cherchera les fiches comprises entre le 1er jour et le dernier jour du mois.

Il faut que l'utilisateur saisisse le mois et l'année.
Pour faciliter les choses, tu demanderas à l'utilisateur de fournir une date complète, avec le jour, mais dont on ne tiendra pas compte puisque seul le mois et l'année nous intéressent.
On suppose que cette date est dans des variable nommée dDateEnCours

A partir de cette date, il te faut calculer le n° du 1er et du dernier jour = le jour précédent le 1er du mois suivant. Exemple :
Dim dDateEnCours As Date = Now.Date
Dim dPremierJour As Date
Dim dDernierJour As Date
' Premier jour du mois
dPremierJour = dDateEnCours.AddDays(1 - dDateEnCours.Day)
' Ajoute un mois à la date saisie
dDernierJour = dDateEnCours.AddMonths(1)
' On se place au premier jour de ce mois
dDernierJour = dDernierJour.AddDays(1 - dDernierJour.Day)
' On retranche 1 jour pour se retrouver au dernier jour du mois précédent
dDernierJour = dDernierJour.AddDays(-1)

Ensuite, dans ta requète, essaye un truc du genre :
(rappel : les dates doivent être encadrées par des #)
maRequete = "Select ... From ... " & _
            " Where laDate Between #" & lPremierJour & "# " & _
                             " And #" & lDernierJour & "#"

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
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
19 sept. 2012 à 15:50
merci jack,
c'est vraiment sa ma préoccupation,
juste une petite précision les dates que je dois mettre doivent être placé dans deux contrôle différent(donc 2 combobox) afin d'avoir une fourchette de temps?
je m'y met puis je te dis quoi!
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
20 sept. 2012 à 07:57
bonjour galaxy2009,
cmarcotte et toi avez tout à fait raison,d'habitude j'introduit mes requettes dans le dataset, donc j'ai créer une forme registre sur laquelle j'enregistre toute les maladies repertorier des toutes les fiches de ce mois là et qui va à la table registre de sa database.comme tu m'a dit je doit mettre deux timepicker pour celui du debut et celui de la fin, je me dit que ces 2 contrôles doivent être dans une forme à part?ou dans la même forme registre?et ma requette je l'introduit dans la dataset à la datatable registre? en sachant que ces 2 dates font parties des champs de la registre?
je pense que j'ai été claire dans ce sens?
stp galaxy2009 j'attend ta suite et merci pour tes encouragement!
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
20 sept. 2012 à 17:55
bonjour,
j'attends toujours votre svp,merci
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
20 sept. 2012 à 19:06
bonjour,
pour mieux vous orientez, vous pouvez me donner les champs de votre table dans tu stock tes enregistrements.



galaxy2009
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
23 sept. 2012 à 11:08
bonjours,
je vous envois les champs dès que possible.
merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 sept. 2012 à 11:10
Bonjour,
je vous envois les champs dès que possible




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
24 sept. 2012 à 08:55
bonjour galaxy2009,
voici mes champs de la table registre: id, pathologie,nom,postnom ,prénom,sexe,age,date_traitement.
je veux maintenant avoir un rapport chaque mois sur les pathologies traiter.
j'aimerai vraiment que vous m'aidiez, merci.
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
30 sept. 2012 à 08:17
bonjour,
merci beaucoup pour ta reponse, je m'y met immédiatement et je te dit quoi.
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
30 sept. 2012 à 11:35
bonjour galaxy2009,
hmmm après réflexion, je préfère que tu m'explique aussi comment connecter la table au datagridview, parce que j'ai essayé mais sans succès.
merci
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
1 oct. 2012 à 08:36
bonjour galaxy 2009,
j'ai pu le faire,je l'ai connecter à partir du controle lui même sans passé par le code, mon problème reside au niveau du provider, ma base de donné est access 2010( avec extension accDb) et sa connection affiche selon repertoire du logiciel: provider= Microsoft.Ace.OLEDB.12.0;data source=|datadirectory|\med.accdb. sa m'affiche 3 erreus:
-'provider' n'est pas déclaré. il peut être inaccessible en raison de son niveau de protection
-'ACE' n'est pas membre de 'microsoft'
-fin d'instruction attendue(.12.0;data source=|datadirectory|\med.accdb)
ainsi que le reste du code n'a que des erreur les abreviations(cnx,cmd,dtt,dta,dts)
je me suis dit que ce son des abreviations exemple: dts veux dire dataset?.à moins je me trompe.
pour le code du bouton sa m'ecrit que registrebindingsource n'est pas un membre de la forme.comment faire?
j'espere que j'ai été claire.
merci
0
Hcaraibe5 Messages postés 14 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 7 octobre 2012 1
7 oct. 2012 à 23:06
bonjour galaxy 2009,
c'est juste pour te remercier parce que j'ai pu le réaliser,je suis passé par un autre chemin pour la connections de la base de donnée mais le code du bouton d'affichage n'as pas changé;jusque là tout vas bien, au cas contraire je te dirai quoi. j'arrive à imprimer coe je veux n'importe quel temps choisit entre les 2 dates.merci beaucoup!je suis très content.
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
8 oct. 2012 à 11:48
Bonjour,
je suis heureux pour toi.je suis à votre disposition
bon courage.

galaxy2009
0
Rejoignez-nous