Filtrage et affichage [Résolu]

Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
- - Dernière réponse : galaxy2009
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
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.
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
3
Merci
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.

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
3
Merci
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

Merci galaxy2009 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de galaxy2009
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
3
Merci
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

Merci galaxy2009 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de galaxy2009
3
Merci
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.

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
je vais juste préciser que j'imprime avec report viewer
Commenter la réponse de Hcaraibe5
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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!
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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!
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
bonjour,
j'attends toujours votre svp,merci
Commenter la réponse de Hcaraibe5
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
0
Merci
bonjour,
pour mieux vous orientez, vous pouvez me donner les champs de votre table dans tu stock tes enregistrements.



galaxy2009
Commenter la réponse de galaxy2009
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
bonjours,
je vous envois les champs dès que possible.
merci
Commenter la réponse de Hcaraibe5
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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.
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
bonjour,
merci beaucoup pour ta reponse, je m'y met immédiatement et je te dit quoi.
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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
Commenter la réponse de Hcaraibe5
Messages postés
14
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
7 octobre 2012
0
Merci
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.
Commenter la réponse de Hcaraibe5
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
0
Merci
Bonjour,
je suis heureux pour toi.je suis à votre disposition
bon courage.

galaxy2009
Commenter la réponse de galaxy2009

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.