VBA Excel Loop записывает данные; Доступ VBA Loop читает данные - VBA.CreateObject Ошибка - PullRequest
0 голосов
/ 16 марта 2019

Я написал цикл в Excel, чтобы собирать данные с помощью ключей отправки из сторонних приложений каждые пару секунд (работает хорошо) и сохранять их в нескольких xlsx файлах, а также другой цикл в базе данных Access для чтения некоторых из этих файлов каждую пару секунд для обновления БД.

Проблема в том, что если я запусту эти макросы на одном ПК, то в какой-то момент (непредсказуемый, трудно воспроизводимый) в Excel VBA появится ошибка, связанная с

Set fso = VBA.CreateObject("Scripting.FileSystemObject")
....
Call fso.CopyFile(Pfad, Ziel, True)

По сути, Excel затем удаляет файл, который должен заменить, но не заменяет его. Это также происходит, если fso.copyfile абсолютно не связан с тем, что Access пытается прочитать. - Поэтому я предполагаю, что это основная проблема методов, которые я использую в Access + Excel в сочетании.

Есть ли способ сделать чтение Access менее "инвазивным", чтобы его не беспокоило, если Excel в данный момент использует fso = VBA.CreateObject?

Вот область Excel VBA, которая иногда приводит к ошибке (Возможно, если Access делает что-то агрессивное в один и тот же момент)

Вот соответствующий код доступа:

В данный момент у меня нет кода ошибки, я добавлю его, как только это произойдет снова.

1 Ответ

0 голосов
/ 16 марта 2019

Попробуйте дать другим приложениям время для выполнения своей работы, добавив DoEvents к вашему циклу в коде на стороне доступа.

...