Ciao a tutti,
ho questo codice che mi esporta un file mdb, funziona ed i record e la tabella sono scritti correttamente nel file, ma il file mdb rimane bloccato (e' presente anche un file laccdb con lo stesso nome nella cartella) e non posso spostarlo anche se chiudo esplicitamente le connessioni.

codice:
Public Sub ExportToMdb(query As String, mdbFileName As String)
    ' Stringa di connessione per il database di origine (ACCDB)
    Dim sourceConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & perc_db & ";Persist Security Info=False;"


    ' Stringa di connessione per il nuovo database MDB
    Dim mdbConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\sabello\Documents\Visual Studio 2022\progetti\axactorDI\axactorDI\bin\Debug\net8.0-windows\mdb\" & mdbFileName & ".mdb;"
    ' Nome della tabella nel nuovo database MDB
    Dim tableName As String = System.IO.Path.GetFileNameWithoutExtension(mdbFileName)


    ' Crea il nuovo database MDB
    Dim cat As Object = CreateObject("ADOX.Catalog")
    cat.Create(mdbConnectionString)
    cat = Nothing


    ' Esegui la query sul database di origine e ottieni i dati
    Dim dataTable As New DataTable()
    Using sourceConnection As New OleDbConnection(sourceConnectionString)
        Using adapter As New OleDbDataAdapter(query, sourceConnection)
            sourceConnection.Open()
            adapter.Fill(dataTable)
        End Using
        sourceConnection.Close()
    End Using




    ' Crea la tabella nel nuovo database MDB e inserisci i dati
    Using mdbConnection As New OleDbConnection(mdbConnectionString)
        mdbConnection.Open()


        ' Crea la tabella
        Dim createTableCommand As String = "CREATE TABLE [" & tableName & "] ("
        For Each column As DataColumn In dataTable.Columns
            createTableCommand &= "[" & column.ColumnName & "] " & GetOleDbType(column.DataType) & ","
        Next
        createTableCommand = createTableCommand.TrimEnd(","c) & ")"


        Using cmd As New OleDbCommand(createTableCommand, mdbConnection)
            cmd.ExecuteNonQuery()
        End Using


        ' Inserisci i dati
        For Each row As DataRow In dataTable.Rows
            Dim insertCommand As String = "INSERT INTO [" & tableName & "] VALUES ("
            For Each column As DataColumn In dataTable.Columns
                insertCommand &= "?,"
            Next
            insertCommand = insertCommand.TrimEnd(","c) & ")"


            Using cmd As New OleDbCommand(insertCommand, mdbConnection)
                For Each column As DataColumn In dataTable.Columns
                    cmd.Parameters.AddWithValue("@" & column.ColumnName, row(column))
                Next
                cmd.ExecuteNonQuery()
            End Using
        Next


        mdbConnection.Close()
        mdbConnection.Dispose()


    End Using


    GC.Collect()
    GC.WaitForPendingFinalizers()
    GC.Collect()
End Sub
Ho provato ad usare questo che ho trovato ma non funziona
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()

Avete suggerimenti?