Как подключиться к базе данных. accdb вместо базы данных. mdb
Проблема в том, что я не могу получить свой VB.Сетевое приложение для подключения к базе данных. accdb. Он будет подключаться только к базе данных. mdb. Я использую сообщество Visual Studio 2015.
Я добавил ссылки в свой проект на Microsoft.Офис.Ядро и Microsoft.Офис.Взаимодействие.Доступ.Дао к моему VB.Сетевой проект.
Если вместо того, чтобы использовать базу данных .accdb с моим приложением, я заменяю базу данных .mdb с тем же именем, мой код работает нормально.
Почему у меня не ВБ.Сетевое приложение подключается к базе данных. accdb. Что мне нужно сделать, чтобы заставить его распознать базу данных .accdb и запустить мой код?
Любая помощь от кого-то, кто уже решал этот вопрос раньше, будет очень признательна.
Что я уже пробовал:
Dim dbProvider As String Dim dbSource As String Dim con As New System.Data.OleDb.OleDbConnection Dim cmd1 As New System.Data.OleDb.OleDbCommand Dim CmdTxt As String dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;" dbSource = "Data Source=|DataDirectory|\AssetDatabase.accdb" con.ConnectionString = dbProvider & dbSource cmd1.Connection = con con.Open() Dim NameOfCompany As String = Me.txtCompany.Text 'Creaste tblAssetData for the new company CmdTxt = "SELECT * INTO AssetDatabase.[tblAssetData-" & NameOfCompany & "] FROM DepreciationCalculator.tblAssetData" cmd1.CommandText = CmdTxt cmd1.ExecuteNonQuery()
Richard MacCutchan
Вы забыли объяснить, что происходит, когда вы пробуете вышеприведенный код.
Member 11561472
Что происходит, так это то, что я получаю сообщение об ошибке, которое гласит::
Необработанное исключение типа ' System. Data.Oledb. OleDbException ' произошло в System.Data.dll
Дополнительная информация: не удалось найти файл 'C:\Users\rkvjr\Documents\Visual Studio 2015\Projects\WindowsApplication2\WindowsApplication2\bin\Debug\Decorationcalculator.mdb'.
Как вы можете видеть из сообщения об ошибке, несмотря на то, что мое соединение с .# то # версия моей базы данных, Visual Studio ищет .MDB-компонента версия базы данных. Если я положу .MDB-компонента версия базы данных на месте .# то # база данных, код работает отлично.
Устанавливая соединения с двумя моими базами данных. accdb (AssetDatabase.accdb и Decorationcalculator. accdb), я следовал инструкциям, содержащимся в статье под названием at Пошаговое руководство: подключение к данным в базе данных Access (Windows Forms)
Я не могу понять, почему Visual Studio все еще настаивает на соединении с файлом базы данных .mdb и не распознает файл базы данных .accdb.
Помощь от кого-то, кто столкнулся с этой ситуацией и разрешил ее, была бы очень признательна.
Спасибо,
BobV365
Richard MacCutchan
Ваша строка подключения в приведенном выше фрагменте кода не совпадает с файлом, к которому ваш код пытается получить доступ. Я могу только предположить, что вы используете неправильную версию своей программы.
Member 11561472
Привет, Ричард. Фрагмент кода работает правильно, если у меня есть файлы AssetDatabase.mdb и DepreciationCalculator.mdb в папке Debug моего приложения. Как указывалось ранее, когда я извлекаю два файла .mdb и помещаю файлы AssetDatabase.accdb и DepreciationCalculator.accdb в папку Debug, мое приложение сообщает, что не может найти файл AssetDatabase.mdb. В ошибке всегда упоминается, что не удается найти файл AssetDatabase.mdb. Он полностью игнорирует тот факт, что я пытаюсь заставить свое приложение получить доступ к файлу AssetDatabase.accdb. На моем компьютере установлен Microsoft Office 365. Что мне нужно сделать, чтобы Visual Studio распознала файл .accdb?
Richard MacCutchan
Я только что запустил очень простой тест с использованием файла. accdb, и он отлично работает.
Member 11561472
Можете ли вы предоставить мне базовый тестовый файл, который, как вы сказали, Вы создали для тестирования файла .accdb? Я хотел бы посмотреть, работает ли он в моей системе. Я использую Windows 10. У меня также есть еще один компьютер с Windows 7. Большое спасибо за вашу помощь.
Richard MacCutchan
См. код ниже, чтобы построить простую базу данных.
RedDk
Попробуйте использовать нотацию 8dot3 для этой строки пути. А также попробуйте проверить проблему отключения, исследуя, можно ли подключить любую базу данных с помощью драйверов, доступных вам в интерфейсе Visual Studio, в частности в разделе/in (щелкните правой кнопкой мыши) "Обозреватель серверов". И конечно работать odbcad32.exe (из SysWOW64, его), чтобы получить лучшее представление о том, почему .# то # отличается от .МДБ. На моей коробке есть выбор, и я думаю,что есть также свойства, которые различимы для каждого. Удачи!
Member 11561472
Я добавил ссылку на компонент Microsoft Office 14.0 Access Database Engine и библиотеку объектов Microsoft Office 16.0. Теперь ошибка, которую я получаю, заключается в том, что он не может найти файл AssetDatabase.accdb. Так что, по крайней мере, теперь Visual Studio ищет файл .accdb, а не файл .mdb. Есть ли какие-либо другие ссылки, которые мне нужно изменить или добавить в мой VB?Net приложение, чтобы получить визуальную студию, чтобы признать .файл accdb? Я дважды проверил, чтобы убедиться, что файл .accdb существует в месте отладки.
Richard MacCutchan
Это не имеет ничего общего с Visual Studio, это просто IDE.
Проблема заключается в вашем коде. Единственный способ узнать, что происходит, - это пройти через код с помощью отладчика, чтобы точно узнать, что происходит на каждом шаге.