程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 切換面板動態時鐘的副作用

切換面板動態時鐘的副作用

編輯:關於Access數據庫

我的一個倉庫管理程序,做了一個主控窗體,並利用主控窗體的timer事件做了一個窗體時鐘,一秒刷新一次,看起來效果還不錯,但惡夢也開始降臨,交給倉庫使用後,操作員老是反應所有窗體的刪除按鈕都不起作用。

我調試時發現,到了這句就出錯:“無法選擇記錄”
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
這句等同於選定記錄。我卻不明白為何不能選擇記錄,就換了另一條命令來刪除記錄:
docmd.RunCommand acCmdDeleteRecord

結果依然不行。

後來又發現只要開著主控窗體,就無法執行刪除命令,我就把主控窗體中Load、Open裡的語句都屏蔽掉,還是不行。

百思不得其解!

一次在主控窗體打開的狀態下修改程序時,輸入“.”號時,後面的對象列表顯示了一下馬上又消失了,因為窗體時鐘在運行,每秒都會刷新一次主控窗體,刷新時就把焦點移到主控窗體上了,所以對象列表就消失了,這時我恍然大悟:罪魁禍首就是timer事件!

因為執行刪除動作時,程序會先選定當前記錄,再刪除選定的記錄,如果你的窗體有記錄選定器就會看到記錄選定器變黑了,如果這時剛好主控窗體刷新時間,就會把焦點移到主控窗體上去,剛才選定的記錄又變成沒選定或是無法選定,就無法執行刪除操作了。

最後,我把主控窗體的時鐘效果去掉,刪除按鈕又可以正常工作了。

另:如果窗體的編輯、刪除屬性為“否”,也會導致刪除按鈕不起作用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved