2017-08-24 22 views
1

我在Access中設置了一個多線程例程,它可以同時打開多個Access文件並在每個文件中執行特定的功能。這些文件並行工作。我想發送Debug.Print消息到啓動多線程的主文件。將debug.print發送到不同的即時窗口

我不確定它是否可以做到這一點,或者是否有更好的解決方案。

+0

什麼是您的操作系統? – jsotola

+0

看到這個(它只記錄到系統日誌)... https://stackoverflow.com/questions/19574317/vbs-to-event-log/19590044#19590044 – jsotola

+0

什麼是命名管道?我不知道如何實施。 – jsotola

回答

0

您可以在主應用程序中創建一個PublicNotCreatable UserForm(不是Access窗體),並將其引用傳遞給所有並行應用程序。向UserForm中添加一個自定義方法,如'PrintLine(message as string), and each app can call form.PrintLine(「app is running」)`?

然後,您可以讓UserForm顯示輸出,或者可能使UserForm將消息輸出到主應用程序的立即窗口。

1

您有多個工藝,每個工作在自己的部分大圖

「主」 IDE的立即窗格屬於該實例,在該處理;你可以Alt鍵 + 標籤然後Alt鍵 + F11,彈出任何VBE實例/每個實例,查看該實例的Debug.Print輸出。

您想要的內容與ILogger實現類似,它將日誌條目寫入專用數據庫表中:例如,DatabaseLogger

您將Debug.Print替換爲Logger.Log調用;這樣您可以讓數據庫服務器處理多個傳入線程,並且根據RDBMS,您甚至可以設置一個作業來清理,聚合和/或歸檔較早的日誌記錄。或者無論如何,只要它不是我需要在VBA代碼中關心的邏輯。

寫到另一個VBE的立即工具窗口涉及低層次,跨進程的Win32魔力並不需要弄亂原本不錯&整潔VBA項目。我不會爲此煩惱,有更簡單的解決方案。

+0

嗨馬特,伐木是我一直在考慮的事情。我將檢查代碼並查看它是否合適。非常感謝。 –

+0

嗨馬特,這些鏈接是驚人的。我正在檢查你創建的字典,然後更新字典。在 {Private Type tDictionary Encapsulated As List}中有一個引用。這也應該是「TYPE TypeValidator」或者它是另一個類。 –