Bonjour .
Voila j'ai un petit problème .

J'ai crée deux datagridview (avec deux Datasources différentes) .

Dans le premier datagridview , Pour filtrer les données et afficher les infos d'un patient donné grâce a son Identifiant "Num Ptnt" , j'ai eu recours au BindingSource avec cette commande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
DtGridBS.Filter = "NumPtnt = '" & TextNumPat.Text & "'"
Et cela m'affiche ça :
Nom : capture1.PNG
Affichages : 969
Taille : 92,0 Ko

Maintenant , je ferme le programme (vous saurai pourquoi plus tard)


Dans le 2em Datagrid , j'affiche les consultations et infos générales (médicaments , contenance) , indépendamment du numéro du patient ou autres.
Et cela m'affiche sa :
Nom : Capture2.PNG
Affichages : 754
Taille : 128,4 Ko

Cela marche bien et sans aucun soucis . (pour les boutons consultations , médicaments , Contenance)


Mais le problème survient lorsque j'appuie sur les boutons Consultations et Info Patient en même temps :
Nom : Capture6.PNG
Affichages : 789
Taille : 143,3 Ko


Les deux Datagrid sont filtrés par le BindingSource bien qu'ayant des datasources différentes.
Ils ont un point en commun , ("NumPtnt") qui est un attribut dans la base de donnée acces 2007 qui est utilisé par les deux datasources , je me dit que le Bindingsource s'est permis de filtré tous les DataTables du moment que dans le DataAdapter , il y est mentionner "NumPtnt"

Y aurais t-il une commande , contrainte , des test (if , while ect..) bref n'importe quoi qui pourrais indiquer au BindingSource de se limiter au NumPtnt du Datagrid1 ou du moins de la datasource1 ? au lieu de filtrer les deux ?

La partie du code la plus intéressante , avec déclaration du Bindingsource (c'est un peu long , je me suis permis de couper) :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Imports System.Data.OleDb
Public Class Form1
    Dim Cnx As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Kane\Desktop\Cabinet Medical\Cabinet Medical.mdb")
    Dim daPat As New OleDbDataAdapter("Select * From Patients", Cnx)
    Dim daConsult As New OleDbDataAdapter("Select * From Consultations", Cnx)
    Dim daCont As New OleDbDataAdapter("Select * From Contient", Cnx)
    Dim daMed As New OleDbDataAdapter("Select * From Medicaments", Cnx)
    Dim daCons As New OleDbDataAdapter("Select * From Consultations , Medicaments , Contient Where Medicaments.NumMedicament = Contient.NumMedicament AND Consultations.NumConsult = Contient.NumConsult", Cnx)
    Dim dst As New DataSet
    Dim dtr As DataRow
    Dim dtPat As DataTable
    Dim dtConsult As DataTable
    Dim dtMed As DataTable
    Dim dtcont As DataTable
    Dim Db As OleDbCommandBuilder
    Dim i As Integer
    Dim dtCons As DataTable
    Dim numligne As Integer
    Dim NumPtnt As Long
    Dim DtGridBS As New BindingSource
    Sub affichePat()
        TextNumPat.Text = dtPat.Rows(numligne).Item(0)
        TextNom.Text = dtPat.Rows(numligne).Item(1)
        TextPre.Text = dtPat.Rows(numligne).Item(2)
        TextSex.Text = dtPat.Rows(numligne).Item(3)
        TextDne.Text = dtPat.Rows(numligne).Item(4)
        TextProf.Text = dtPat.Rows(numligne).Item(5)
        TextAds.Text = dtPat.Rows(numligne).Item(6)
    End Sub
    Sub vider()
        TextNumPat.Clear()
        TextNom.Clear()
        TextPre.Clear()
        TextSex.Clear()
        TextDne.Clear()
        TextProf.Clear()
        TextAds.Clear()
    End Sub
    Sub afficheCons()
        Dim R As String
        'daCons = New OleDbDataAdapter("Select * From Consultations , Medicaments , Contient Where Medicaments.NumMedicament = Contient.NumMedicament AND Consultations.NumConsult = Contient.NumConsult AND Consultations.NumPtnt=" & Val(TextNumPat.Text), Cnx)
            daCons.Fill(dst, "Consultations")
            dtCons = dst.Tables("Consultations")
            dtCons.Clear()
            daCons.Fill(dst, "Consultations")
            dtCons = dst.Tables("Consultations")
            affichePat()
            DataGridView1.DataSource = dtCons
            DtGridBS.DataSource = dtCons
            Me.DataGridView1.Columns(8).Visible = False
        Me.DataGridView1.Columns(9).Visible = False
        DtGridBS.Filter = "NumPtnt = '" & TextNumPat.Text & "'"
    End Sub
    Sub afficheBD()
        DtGridBS.Filter = "NumPtnt = '" & TextNumPat.Text & "'"
    End Sub