2016-11-05 52 views
0

我的訪問應用程序中有一個類模塊,它將所有表(系統除外)導出到excel文件,以使表名稱爲工作表名稱。由於這需要大約5秒鐘,我將導出for循環包裝在進度條中。這工作沒有問題。一個問題仍然存在:似乎DoCmd.TransferSpreadsheet命令爲用戶提供了終止操作的選項。這由訪問應用程序顯示在進度條所在的相同位置,這就是爲什麼我的進度條被一些文本讀取中斷,原因大致如下:「如果您想停止按Esc」。我不知道哪一行vba可以防止這種情況出現。有任何想法嗎?謝謝!停止訪問干擾進度條

Dim subTdf As TableDef 
Dim subIntStatus As Integer 
Dim subIntTableCount As Integer 

For Each subTdf In pDbPfandDb.TableDefs 
    If Not (Left(subTdf.Name, 4) = "msys" Or Left(subTdf.Name, 4) = "usys") Then 
     subIntTableCount = subIntTableCount + 1 
    End If 
Next 

SysCmd acSysCmdInitMeter, "Exportiere Tabellen", subIntTableCount 

For Each subTdf In pDbPfandDb.TableDefs 
    If Not (Left(subTdf.Name, 4) = "msys" Or Left(subTdf.Name, 4) = "usys") Then 
     DoCmd.TransferSpreadsheet acExport, , subTdf.Name, pStrFilePath & pStrFileName & pStrFileExtension, True, subTdf.Name 
     subIntStatus = subIntStatus + 1 
     SysCmd acSysCmdUpdateMeter, subIntStatus 
    End If 
Next 

SysCmd acSysCmdRemoveMeter 

Here is how it should always look like

回答

0

循環之前試試這個:

DoCmd.SetWarnings (WarningsOff)

然後重新啓用該警告的循環具有完成後。

DoCmd.SetWarnings (WarningsOn)

+0

感謝回覆。我之前嘗試過,不幸的是它不適合我。消息仍會在進度欄所在的區域彈出。 –

+0

你能提供此訊息的截圖嗎? –

+0

我編輯了這個問題。然而,我只能捕獲顯示我的消息的進度條屏幕截圖,而不是顯示「按esc ...」的屏幕截圖,因爲該屏幕快速消失(每循環彈出一個毫秒)。再次清楚:消息僅在進度條上可見。這就是爲什麼我猜這與警告不一樣。 –