Отправить файл debug.print в другое окно

Я настроил многопоточность в Access, которая одновременно открывает несколько файлов Access и выполняет определенную функцию в каждом файле. Файлы действуют параллельно. Я хотел бы отправить Debug.Print сообщения в основной файл, который инициирует многопоточность.

Я не уверен, может ли это сделать это или есть лучшее решение.

2 ответа

У вас есть несколько процессов, каждый из которых работает над своей частью общей картины.

Непосредственная панель "основной" IDE принадлежит этому экземпляру в этом процессе; Вы можете нажать Alt + Tab, а затем Alt + F11, чтобы вызвать экземпляр VBE в любом / каждом экземпляре для просмотра этого экземпляра. Debug.Print выход.

То, что вы хотите, это что-то вроде ILogger реализация, которая записывает записи журнала в выделенную таблицу базы данных: DatabaseLogger, например.

Вы заменяете Debug.Print с Logger.Log звонки; таким образом вы позволяете серверу базы данных обрабатывать несколько входящих потоков, и в зависимости от РСУБД вы можете даже настроить задание для очистки, агрегирования и / или архивирования старых записей журнала. Или что угодно, пока это не логика, о которой мне нужно заботиться в коде VBA.

Запись в другое непосредственное окно инструментов VBE включает в себя низкоуровневое межпроцессное волшебство Win32, которое не должно загромождать приятный и аккуратный проект VBA. Я не стал бы беспокоиться об этом, есть более простые решения.

Вы можете создать пользовательскую форму PublicNotCreatable (не форму доступа) в основном приложении и передать ссылку на нее всем параллельным приложениям. Добавьте пользовательский метод в пользовательскую форму, например PrintLine(сообщение в виде строки), and each app can callform.PrintLine("приложение работает")`?

Затем вы можете сделать так, чтобы пользовательская форма отображала выходные данные, или, возможно, чтобы пользовательская форма выводила сообщение в окно немедленных действий основного приложения.

Другие вопросы по тегам