Невозможно подключить Python к MS Access 2016 - PullRequest
0 голосов
/ 11 апреля 2020

Ниже приведена конфигурация: 1. Python - Python 3.8.1 (теги / v3.8.1: 1b293b6, De c 18 2019, 23:11:46) [MS C v.1916 64 бит (AMD64)] на win32 2. MS Access 2016 MSO (16.0.12624.20348) 64 бит 3. Драйвер Microsoft Access (* .mdb, * .accdb) 16.00.4513.1000 4. Установленный Microsoft Access Database Engine 2016 Вторично распространяемый

Обнаружена ошибка при попытке создать соединение:

import pyodb c

conn = pyodb c .connect (r'Driver = {Драйвер Microsoft Access (*. mdb, * .accdb)}; DBQ = C: \ Users \ tejas \ Documents \ First.accdb; ') cursor = conn.cursor ()

Ошибка: трассировка (последний последний вызов): Файл "C: \ Users \ tejas \ eclipse-workspace \ HelloWorld \ DB \ Insert.py", строка 3, в conn = pyodb c .connect (r'Driver = {Драйвер Microsoft Access (* .mdb, * .accdb)}; DBQ = C: \ Users \ tejas \ Documents \ First.accdb; ') pyodb c .Error: (' HY000 ',' [HY000] [Microsoft] [ODB C Microsoft Access Driver] База данных, которую вы пытаетесь открыть, требует более новой версии Mic Rosoft Access. (-1073) (SQLDriverConnect); [HY000] [Microsoft] [ODB C Microsoft Access Driver] База данных, которую вы пытаетесь открыть, требует более новой версии Microsoft Access. (-1073) ')

Я перебирал другие подобные вопросы и пробовал разные варианты, но пока не повезло. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 апреля 2020

[Microsoft] [ODB C Драйвер Microsoft Access] База данных, которую вы пытаетесь открыть, требует более новой версии Microsoft Access.

Запуск этого кода:

# path to the file you want to check
file_path = r"C:\Users\Public\my_db.accdb"

with open(file_path, "rb") as f:
    type_byte = f.read(21)[20]
    print(f"file type {type_byte}")

сгенерировал «тип файла 5», подтверждая, что это файл базы данных Access 2016, который был изменен для включения столбцов нового «большого числа» (BIGINT) типа .

К сожалению, распространяемый движок базы данных Access 2016 не был обновлен для работы с этими файлами, поэтому в данный момент драйвер ACE ODB C выдает вышеуказанную ошибку, если мы попытаемся.

Я не знать, была ли обновлена ​​среда выполнения Access 2016 для работы с этими файлами. Я в чем-то сомневаюсь, но если это так, то может позволить нам работать с такими файлами, используя ACE.DAO через pywin32. (Никогда не пробовал.)

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