Уведомления

Группа в Telegram: @pythonsu

#1 Май 26, 2022 22:01:20

solely-unique
Зарегистрирован: 2022-05-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запустить макрос в MS Access через Python

Python профи! Пожалуйста помогите!!! Вроде простое дело, но никак не получается…

Есть макрос в MS Access (32 bit) необходимо запускать макрос в этой базе каждый час, круглосуточно… Поэтому нужен скрипт в Python.
Есть код ниже, который работает только если изначально открыть MS Access файл, если предварительно ничего не открывать то база MS Access открывается только как Read-only и макрос не запускается

import win32api
from win32com.client import Dispatch
import os

strDbName = ‘cWORK/Volumes/EAS2.accdb’
objAccess = Dispatch(“Access.Application”)
objAccess.Visible = True
objAccess.OpenCurrentDatabase(strDbName)
objDB = objAccess.CurrentDb()
objAccess.DoCmd.RunMacro (“mcrRUN”)

Ошибка “Operation must use an updateable query. ”

Как открыть базу MS Access и передать свои credentials? Или как-то обойти условие, что открытие только как read-only?
В самом MS Access все Trusted настройки установлены как Enabled…

Заранее благодарю!

Офлайн

#2 Май 27, 2022 01:10:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Запустить макрос в MS Access через Python

solely-unique
Есть код ниже, который работает только если изначально открыть MS Access файл
Опиши подробнее, как ты эту базу MS Access открываешь, когда код на питоне работает правильно.

solely-unique
Как открыть базу MS Access и передать свои credentials?
А как ты передаёшь креды (credentials), когда у тебя код на питоне работает правильно?

В чём различия?



Офлайн

#3 Май 27, 2022 09:15:13

solely-unique
Зарегистрирован: 2022-05-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запустить макрос в MS Access через Python

На самом деле я просто руками открываю MS Access файл, он открывается с моими credentials сразу и дальше уже при открытом MS Access код описанный выше работает нормально. Макрос запускается и отрабатывает.

Если заранее файл не открывать, код описанный выше дает ошибку “Operation must use an updateable query.”. А сам файл MS Access после команды objAccess.OpenCurrentDatabase(strDbName) открывается только READ-ONLY

Офлайн

#4 Май 27, 2022 11:27:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Запустить макрос в MS Access через Python

И что будет, если сделать командный файл Windows и написать там запуск сначала MS Access, а затем запуск этого скрипта на питоне?
Для запуска программы в фоновом режиме есть команда start
https://stackoverflow.com/questions/21031171/how-to-run-a-command-in-the-background-on-windows



Офлайн

#5 Май 27, 2022 11:32:34

solely-unique
Зарегистрирован: 2022-05-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запустить макрос в MS Access через Python

Я нашла
os.startfile('cWORK/Volumes/EAS2.accdb')
открывает файл as read and write
Действительно всё было просто! Вдруг кому пригодится

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version