Bonsoir,

Ci dessous mon bout de code.
J'utilise Visual Studio 2010 Express et .net Framework 4.0

=> Le datagrid s'affiche correctement sans filtre :
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
DtgDonnees.DataSource = DtsBase.Tables("D")

=> Par contre, impossible de l'afficher avec un Select
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
Il n'affiche qu'une ligne : mes champs sont vides ; il ajoute les champs "RowError" : Vide ; "RowState" contient Unchanged ; "Table" : vide ; "HasErrors" : case à cocher non cochée

* Vu avec Access : la table contient bien un champ pour "NoDonnee=1"
Il ne va pas à la routine d'erreur.

*J'ai essayé avec des filtres sur d'autres champs, l'ajout d'une clé primaire, ... toujours pareil

* J'ai essayé ("[NoDonnee]=1")

*Les données sont bien sélectionnées : la routine suivante me donne les bonnes données :
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        'Dim FoundRows As DataRow()
        'FoundRows = DtsBase.Tables("D").Select("NoDonnee=1)
        'For i As Integer = 0 To FoundRows.Length - 1
             'MsgBox(FoundRows(i)(3))
        'Next

Je ne sais plus quoi faire...

Merci pour votre aide

Code VB.NET : 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
 
        ===========================================
        Dim StSql As String
 
        'Ouverture de la connection       
        CnxStr = "provider = microsoft.jet.oledb.4.0 ; data source = " & My.Settings.BddChemin & My.Settings.BddNom & ";"
        Cnx = New OleDbConnection(CnxStr)
        Cnx.Open()
 
        'Créer le dataset (copie des données en local)
        DtsBase = New DataSet("Base")
 
        '==============Créer la table "Donnees"
        DtsBase.Tables.Add("D")
 
        'Créer le dataadapter, lien entre la base et le dataset, table "Donnees"
        StSql = "SELECT Donnee.NoDonnee, Donnee.DateDonnee, Donnee.ConcerneDonnee, Donnee.TexteDonnee, Salarie.NomSalarie FROM Salarie INNER JOIN Donnee ON Salarie.NoSalarie = Donnee.CreateurDonnees;"
        DtaBase = New OleDbDataAdapter(StSql, Cnx)
 
        'Remplir le dataset Donnees
        DtaBase.Fill(DtsBase.Tables("D"))
 
        'Remplir le datagrid Donnees avec les données de la table Donnees
        On Error GoTo truc
        DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
 
.../...

truc:
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
MsgBox(Err.Description)