Bonjour à tous,

J'ai un autre petit problème avec mon programme :
La première fois que j’exécute cette procédure j'obtiens :
La base de données a été crée avec succès.
Si j’exécute une deuxième fois la même procédure pour recréer le même fichier, j'obtiens l’erreur suivante au moment ou le code exécute : mon_fichier.Delete()
Le processus ne peut pas accéder au fichier 'D:\Projets VB2010\X-Project\X-Project\AppFiles\Base ADOX2.mdb', car il est en cours d'utilisation par un autre processus.
Ça fait un moment que j'essaye de savoir qu'est ce qui bloque l’accès au fichier et je n'y comprends plus rien

Si vous pouvait m'aider à comprendre ce qui se passe, ça me serait d'un grand secours.

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
Imports ADOX
Module ADO_X
    Dim Catalog As ADOX.Catalog
    Dim Connstr As String
 
    Public Sub CreateBaseADOX()
        Dim SaveFileDialog As New SaveFileDialog
        Dim strFilePathName As String = Nothing
 
        With SaveFileDialog
            'On spécifie l'extension de fichiers visibles
            .Filter = "All Files (*.*)|*.*|Fichiers mdb (*.mdb) | *.mdb"
            .FilterIndex = 2
            'On affiche et teste le retour du dialogue
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                'On récupère le nom du fichier
                strFilePathName = .FileName
            Else : Exit Sub
            End If
        End With
 
        If strFilePathName.EndsWith(".mdb") Then
        Else
            strFilePathName = strFilePathName & ".mdb"
        End If
 
        Connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & strFilePathName & ";Jet OLEDB:Database Password=" & PASSWORDdb & ";" ' & "Jet OLEDB:Engine Type=5"
        Catalog = New ADOX.Catalog
 
        Try
            Dim mon_fichier As New System.IO.FileInfo(strFilePathName)
            If mon_fichier.Exists Then mon_fichier.Delete()
 
            Catalog.Create(Connstr)
            'Call CreateBase()
 
            MsgBox("La base de données a été crée avec succés", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox("Echec lors de la création de la base de données", vbCritical)
        End Try
 
           Catalog = Nothing
 
    End Sub