Bonjour a tous,

Voila j'ai deja posté pour une aide sur access et maintenant que tout marche parfaitement, j'ai un probleme pour un affichage dans mon datagrid.

Je peux afficher les données de ma table dans mon datagrid au chargement du formulaire, mais quand j'utilise un textbox pour faire un affichage precis, j'ai a chaque fois des erreurs.

Chargement du formulaire (tout fonctionne) :

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
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim cnn As New OleDbConnection   'Connexion à la base de données
        Dim cmd As New OleDbCommand    'Commande requête
        Dim drr As OleDbDataReader            'Jeu d'enregistrements
        Dim existenreg As Boolean
        'Connexion à la base de données annuaire sous ACCESS
        cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\archivesCD.mdb"
        cnn.Open()
        'Requête SQL
        cmd.CommandText = "SELECT * FROM Archivage"
        cmd.Connection = cnn
        'Exécution de la requête et récupération du résultat sous forme d'un jeu d'enregistrements dans drr
        drr = cmd.ExecuteReader()
        GrdArchive.ColumnCount = 6
        GrdArchive.Rows.Clear()
        existenreg = drr.Read    'Lecture du premier enregistrement
        While existenreg            'Parcours des enregistrements
            GrdArchive.Rows.Add(drr("ID"), drr("NumAffaire"), drr("Année"), drr("Client"), drr("NumCd"), drr("Observations"))   'Ajout de l'enregistrement dans le DataGridView
            existenreg = drr.Read   'Lecture de l'enregistrement suivant
        End While
        drr.Close()
        cnn.Close()
    End Sub
_______

Afficher le n° d'affaire tapé dans le textbox prevu a cet effet :

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
 Private Sub BtnAff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAff.Click
        Dim cnn As New OleDbConnection   'Connexion à la base de données
        Dim cmd As New OleDbCommand    'Commande requête
        Dim drr As OleDbDataReader            'Jeu d'enregistrements
        Dim existenreg As Boolean
        'Connexion à la base de données annuaire sous ACCESS
        cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\archivesCD.mdb"
        cnn.Open()
        'Requête SQL
        cmd.CommandText = "SELECT * FROM Archivage WHERE NumAffaire=" & TxtAff.Text & "'"
        cmd.Connection = cnn
        'Exécution de la requête et récupération du résultat sous forme d'un jeu d'enregistrements dans drr
        drr = cmd.ExecuteReader()
        GrdArchive.ColumnCount = 6
        existenreg = drr.Read    'Lecture du premier enregistrement
        While existenreg            'Parcours des enregistrements
            GrdArchive.Rows.Add(drr("NumAffaire"), drr("Année"), drr("Client"), drr("NumCd"), drr("Observations"))   'Ajout de l'enregistrement dans le DataGridView
            existenreg = drr.Read   'Lecture de l'enregistrement suivant
        End While
        drr.Close()
        cnn.Close()
____

la j'ai une erreur, j'ai fait un screen :



et j'ai a peu pres la meme erreur si je veux un n° de cd precis, une année precise, un client precis.
Je sens que sa vient de mon SELECT, mais je ne sais pas quoi tenter. Si vous avez une idée, je prends

Merci.