Ошибка закрытия файла Ace Oledb Connection по-прежнему используется - PullRequest
0 голосов
/ 11 февраля 2020

Недавно я столкнулся с проблемой в Excel 2016. После закрытия строки подключения в среде Excel 2016 система все еще блокирует Excel от редактирования (скажем, этот файл используется). но код отлично работает в среде Excel 2007 и 2010 (после закрытия соединения файл готов к открытию и редактированию моей следующей функции).

в среде Excel 2016 кажется, что файл должен быть заблокирован на 75 секунд, после чего он автоматически разблокируется, но это не произойдет в среде Excel 2007 и 2010

где я должен изменить его ?

Public Function gf_ExcelConnection(ByRef strLocation As String, ByRef sWorksheetName As String, _
                                   ByRef lExcelDataset As DataSet, ByRef iLastRow As Integer, _
                                   ByRef sColumn As String) As Boolean

    Dim strExcelConn As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strLocation & _
                                 "; Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;"""

    Dim ExcelConn As New System.Data.OleDb.OleDbConnection(strExcelConn)
    Dim ExcelCommand As OleDbCommand = New OleDbCommand
    Dim ExcelDataAdapter As New OleDbDataAdapter

    Try
        gf_ExcelConnection = True

        ExcelCommand.CommandText = "SELECT * FROM [" + sWorksheetName + "A1:" & sColumn & iLastRow & "] "
        ExcelDataAdapter.SelectCommand = ExcelCommand
        ExcelDataAdapter.SelectCommand.Connection = ExcelConn

        MsgBox(103)

        ExcelConn.Open()
        ExcelDataAdapter.Fill(lExcelDataset, "ImportTable")
        ExcelConn.Close()
        ExcelConn.Dispose()

        MsgBox(104)

    Catch ex As Exception
        gf_ExcelConnection = False
        gclsError.gf_ErrorHandler("InvalidIncorrectFile", Windows.Forms.MessageBoxButtons.OK, Windows.Forms.MessageBoxIcon.Error, False)
        ExcelConn.Close()
    Finally
        ExcelConn.Close()
        ExcelConn.Dispose()
        ExcelConn = Nothing

        MsgBox(105)
    End Try
End Function

1 Ответ

1 голос
/ 12 февраля 2020

Проблема обнаружена и решена

Эта проблема вызвана недавним обновлением Microsoft для продукта MS Office.

После того, как я удалю и переустановлю AccessDatabaseEngine (Microsoft Access Database Engine 2016 Reistributable). ура .. ошибка не появилась

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...