У меня есть приложение, которое импортирует данные из Excel в DataGridView.
Private Sub btnEditClass_Click(sender As Object, e As EventArgs) Handles btnEditClass.Click
Dim pathofExcel As String
Dim result As DialogResult = OpenFileDialog1.ShowDialog()
pathofExcel = OpenFileDialog1.FileName
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathofExcel + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
MyCommand.TableMappings.Add("Table", "Net-informations.com")
DtSet = New System.Data.DataSet
If result = DialogResult.OK Then
MyConnection.Open()
Try
MyCommand.Fill(DtSet)
DataGridView1.DataSource = DtSet.Tables(0)
MyConnection.Close()
Catch ex As Exception
End Try
End If
End Sub
Чтобы это работало, я установил Microsoft Access Database Engine 2010 Reistributable.
![enter image description here](https://i.stack.imgur.com/jT1Fc.png)
Мое приложение перед публикацией, Я гарантирую, что это работает на AnyCPU. Чтобы этот импорт работал, мне нужно убедиться, что AccessDatabaseEngine.exe (32-битная версия) установлен в противном случае, если я установлю AccessDatabaseEngine_X64.exe, он не будет работать и скажет «Microsoft.ACE.OLEDB.12.0». 'провайдер не зарегистрирован на локальном компьютере. ".
Проблема в том, что при установке 32-разрядной версии cpmputer (с windows 10) не примет его, поскольку установлен MS Office 64 немного. Мне нужно удалить 64-битный офис и установить 32-битный для установки AccessDatabaseEngine.
У меня вопрос, есть ли способ настроить приложение на прием AccessDatabaseEngine_x64, чтобы на компьютере под управлением MS Office 64 bit не возникало проблем?
Спасибо.