Filtrage et affichage [Résolu]

Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 19 sept. 2012 à 08:28 - Dernière réponse : galaxy2009 144 Messages postés dimanche 24 avril 2011Date d'inscription 16 juin 2016 Dernière intervention
- 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

Utilisateur anonyme - 19 sept. 2012 à 18:21
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
galaxy2009 144 Messages postés dimanche 24 avril 2011Date d'inscription 16 juin 2016 Dernière intervention - 19 sept. 2012 à 19:02
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de galaxy2009
galaxy2009 144 Messages postés dimanche 24 avril 2011Date d'inscription 16 juin 2016 Dernière intervention - 27 sept. 2012 à 19:17
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de galaxy2009
Utilisateur anonyme - 30 sept. 2012 à 16:17
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 19 sept. 2012 à 09:00
0
Utile
je vais juste préciser que j'imprime avec report viewer
Commenter la réponse de Hcaraibe5
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 19 sept. 2012 à 14:04
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 19 sept. 2012 à 15:50
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 20 sept. 2012 à 07:57
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 20 sept. 2012 à 17:55
0
Utile
bonjour,
j'attends toujours votre svp,merci
Commenter la réponse de Hcaraibe5
galaxy2009 144 Messages postés dimanche 24 avril 2011Date d'inscription 16 juin 2016 Dernière intervention - 20 sept. 2012 à 19:06
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 23 sept. 2012 à 11:08
0
Utile
bonjours,
je vous envois les champs dès que possible.
merci
Commenter la réponse de Hcaraibe5
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 sept. 2012 à 11:10
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 24 sept. 2012 à 08:55
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 30 sept. 2012 à 08:17
0
Utile
bonjour,
merci beaucoup pour ta reponse, je m'y met immédiatement et je te dit quoi.
Commenter la réponse de Hcaraibe5
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 30 sept. 2012 à 11:35
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 1 oct. 2012 à 08:36
0
Utile
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
Hcaraibe5 14 Messages postés mardi 11 janvier 2011Date d'inscription 7 octobre 2012 Dernière intervention - 7 oct. 2012 à 23:06
0
Utile
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
galaxy2009 144 Messages postés dimanche 24 avril 2011Date d'inscription 16 juin 2016 Dernière intervention - 8 oct. 2012 à 11:48
0
Utile
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.