Bonjour,

J'ai un drôle de bug qui m'arrive. J'explique le contexte.

Je produits une application et aujourd'hui j'ai eu la demande d'ajouter une table dans la BD Access. J'ajoute la table et les champs. Je crée la relation. J'inscris les infos dans la table pour tester l'affichage. Les insertions dans Access pour cette table se passe bien. Je ferme Access et je rouvre Access ensuite pour voir si la table est bien la. Tout va bien jusque là.

Dans le programme cette table affiche des infos dans un combo box. Tout est codé comme les autres combo box, juste le nom de la table et le binding qui change.

Le bug je l'ai en pleine face lors de la trace dans le debug.

En produisant la trace dans VS la table que je viens de rajouter disparait complètement.

Voici le code pour afficher les infos dans le combo box....

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
 
 
        Try
            Dim strCon = CStr("provider=microsoft.jet.oledb.4.0;" & "data source= " & Application.StartupPath & "\" & "Demandes.mdb;")
            Cn = New OleDb.OleDbConnection(strCon)
            Cn.ConnectionString = strCon
            Cn.Open()
            CmdR = Cn.CreateCommand() 'Creation de commande
            CmdR.CommandText = "select id_syst, nom_syst from InfosSys order by Id_syst"
            DtSet = New DataSet
            DtAdapteur = New OleDb.OleDbDataAdapter
            DtAdapteur.SelectCommand = CmdR
            DtAdapteur.Fill(DtSet, "InfosSys")
 
            Me.Cmb_Systeme.DataSource = DtSet.Tables("InfosSys")
            Me.Cmb_Systeme.DisplayMember = "Nom_Syst"
            Me.Cmb_Systeme.ValueMember = "id_Syst"
            Cn = Nothing
            CmdR = Nothing
            DtAdapteur = Nothing
            'Objet déconnectée
            DtSet = Nothing
            DtTable = Nothing
            DtRow = Nothing
 
        Catch ex As OleDb.OleDbException
            Cn = Nothing
            CmdR = Nothing
            DtAdapteur = Nothing
            'Objet déconnectée
            DtSet = Nothing
            DtTable = Nothing
            DtRow = Nothing
            MsgBox(ex, MsgBoxStyle.Critical)
        End Try
Arrivé à la ligne DtAdapteur.Fill(DtSet, "InfosSys") tout plante. J'arrête la trace et je m'appercois que la table InfosSys n'est plus la! Disparus!

En trois ans de programmation avec Access c'est la première fois que je vois cette chose!

Je sais que Access n'est pas la BD la plus appréciée et je comprends. Mais là je ne peux pas changer pour SQL Express ou tout autre BD ou SGBD.

Merci de m'éclairer

AngelEvil!