2009-01-07 68 views
2

我正在開發使用MS SQLServer後端的Access 2003數據庫。使用Access 2003 ADP項目執行表單驗證

我正在嘗試執行表單驗證並遇到一些問題。

  1. 有效性規則爲每個字段似乎被忽略
  2. 我想不出我應該重寫執行驗證什麼事件,而無需對數據庫做到這一點。 (我不反對這一點,它只是我不知道如何捕捉錯誤消息,而不是將它們顯示給用戶)

我試着繞過第2號通過禁止關閉和強制使用的「關閉按鈕」,但用戶可以通過按下標籤或按下底部的「下一個記錄」按鈕來對其進行旁路操作。

任何建議將不勝感激。

回答

1

如果您正在使用的驗證規則屬性,你可以捕捉驗證和重複鍵錯誤,除其他事項外,在Form錯誤事件:

Private Sub Form_Error(DataErr As Integer, Response As Integer) 
    If DataErr=2107 Then 
     MsgBox "Validation error! " & ActiveControl.Name 
    End If 
End Sub 

您可以強制使用您的關閉按鈕的使用變量定義在表單級別,並設置爲false,除非點擊按鈕。

​​

來源:http://www.tek-tips.com/faqs.cfm?fid=2071

+0

在OnLoad事件中將布爾值設置爲False非常沒用,因爲根據定義,未初始化的布爾值等於False。 – 2009-01-09 16:45:13

1

如果你給我們一個你的驗證規則的例子,它可能會有所幫助。

不過,我已經把驗證的更新(尤其是當我有更復雜的驗證算法)

更新之前的習慣之下: 我做了一些實驗,似乎在驗證規則只有當您更新字段時纔會檢查該字段,但是如果要在表單上的其他位置進行更新,而不是在保存記錄時進行更新。所以我認爲你的解決方案是將驗證移動到Form_BeforeUpdate。

或者你可以使表中的列非空 - 這將迫使用戶做一些與該領域。或者,如果該字段必須是「測試」,那麼您可以通過設置默認值並鎖定該字段以便用戶無法更改該字段來支持整個過程。

1

您可以通過設置窗體的導航按鈕屬性隱藏導航按鈕「否」。通過將表單的Cycle屬性設置爲「當前記錄」,您也可以禁止Tab鍵記錄到新記錄。

對於Access中的任何非應用程序界面,我通常會將表單鎖定得非常緊密,並根據需要提供自己的導航按鈕,關閉按鈕等。