ValidationText 屬性

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

使用 ValidationText 屬性可以指定當(dāng)輸入的數(shù)據(jù)違反了記錄、字段或控件的 ValidationRule 設(shè)置時,向用戶顯示的消息。String 型,可讀寫。

expression.ValidationText

expression     必需。返回“應(yīng)用于”列表中的一個對象的表達(dá)式。

說明

當(dāng)復(fù)選框、選項(xiàng)按鈕切換按鈕類型的控件選項(xiàng)組中時,ValidationRuleValidationText 屬性不能應(yīng)用于這些控件,而只適用于選項(xiàng)組本身。

對于 ValidationRule 屬性,輸入表達(dá)式,對于 ValidationText 屬性設(shè)置,輸入文本。ValidationRule 屬性設(shè)置的最大長度是 2048 個字符。ValidationText 屬性設(shè)置的最大長度則是 255 個字符。

對于控件,可以將 ValidationRule 屬性設(shè)置為任何有效的表達(dá)式。對于字段和記錄的有效性規(guī)則,表達(dá)式中不能包含用戶定義的函數(shù)、域聚合函數(shù)聚合函數(shù)Eval 函數(shù)、CurrentUser 方法,另外也不能包含對窗體、查詢或表的引用。此外,字段的有效性規(guī)則不能包含對其他字段的引用。對于記錄,表達(dá)式則可以包含對該表中字段的引用。

使用以下方法可以設(shè)置 ValidationRuleValidationText 屬性:

?表“設(shè)計(jì)”視圖的“字段屬性”節(jié)(對字段的有效性規(guī)則而言)。

 

?在表“設(shè)計(jì)”視圖中單擊“視圖”菜單中的“屬性”命令所顯示的表的屬性表(對記錄的有效性規(guī)則而言)。

 

?窗體中控件的屬性表。

 

?Visual Basic。在 Visual Basic 中,應(yīng)使用字符串表達(dá)式來設(shè)置這些屬性。

對于表字段及記錄,也可以在 Visual Basic 中使用 DAO ValidationRule 屬性來設(shè)置這些屬性。

Microsoft Access 將根據(jù)字段的數(shù)據(jù)類型,自動檢查數(shù)據(jù)的有效性。例如,Microsoft Access 在數(shù)值字段中不允許有文本。使用 ValidationRule 屬性可以更詳細(xì)地設(shè)置規(guī)則。

如果只設(shè)置了 ValidationRule 屬性但沒有設(shè)置 ValidationText 屬性,當(dāng)違反了有效性規(guī)則時,Microsoft Access 將顯示標(biāo)準(zhǔn)的錯誤消息。如果設(shè)置了 ValidationText 屬性,所輸入的文本將作為錯誤消息顯示。

例如,在添加新職員記錄時,可以通過設(shè)置 ValidationRule 屬性來要求雇員的“開始日期”字段的值都在公司的成立日期到當(dāng)前日期之間。如果輸入的日期不在這個范圍內(nèi),可以顯示 ValidationText 屬性設(shè)置的消息:“開始日期不正確?!?/span>

如果控件是通過從字段列表中拖動字段的方式創(chuàng)建的,雖然字段的有效性規(guī)則沒有在屬性表上控件的 ValidationRule 屬性框中顯示,但仍然保持有效,因?yàn)榕c字段綁定的控件將繼承該字段的有效性規(guī)則。

控件、字段及記錄的有效性規(guī)則的應(yīng)用方式如下:

?在編輯數(shù)據(jù)并且焦點(diǎn)離開字段或控件時,將應(yīng)用字段和控件所設(shè)置的有效性規(guī)則。

 

?在移動到其他記錄時,將應(yīng)用記錄的有效性規(guī)則。

 

?如果一個字段及一個與該字段綁定的控件都創(chuàng)建了有效性規(guī)則,在編輯數(shù)據(jù)并且焦點(diǎn)離開控件時將同時應(yīng)用這兩個有效性規(guī)則。

下表包含了 ValidationRule 以及 ValidationText 屬性的表達(dá)式示例:

ValidationRule 屬性

ValidationText 屬性

<> 0

輸入項(xiàng)必須是非零值。

> 1000 Or Is Null

輸入項(xiàng)必須為空值或大于 1000。

Like "A????"

輸入項(xiàng)必須是 5 個字符并以字母 A 為打頭。

>= #1/1/96# And <#1/1/97#

輸入項(xiàng)必須是 1996 年中的日期。

DLookup("客戶ID", "客戶", "客戶ID = Forms!客戶!客戶ID") Is Null

輸入項(xiàng)必須是唯一的“客戶ID”(域聚合函數(shù)只允許在窗體級的有效性中使用)。

 

如果為某個字段創(chuàng)建有效性規(guī)則,Microsoft Access 通常不允許 Null 值存儲在該字段中。如果要使用 Null 值,必須將 “Is Null” 添加到有效性規(guī)則中,如“<> 8 Or Is Null”,并確保 Required 屬性已經(jīng)設(shè)置為“否”。

在非 Microsoft Access(例如,dBASE、Paradox 或 SQL Server)創(chuàng)建的表中,不能為其字段或記錄設(shè)置有效性規(guī)則。對于這些類型的表,只能為控件創(chuàng)建有效性規(guī)則。

示例

下面的示例為某個字段創(chuàng)建了一個有效性規(guī)則,只允許輸入大于 65 的數(shù)值。如果輸入了一個小于 65 的數(shù)字,將顯示一條消息。這些屬性是通過 SetFieldValidation 函數(shù)設(shè)置的。

Dim strTblName As String, strFldName As String

Dim strValidRule As String

Dim strValidText As String, intX As Integer

strTblName = "Customers"

strFldName = "Age"

strValidRule = ">= 65"

strValidText = "Enter a number greater than or equal to 65."

intX = SetFieldValidation(strTblName, strFldName, _

    strValidRule, strValidText)

Function SetFieldValidation(strTblName As String, _

    strFldName As String, strValidRule As String, _

    strValidText As String) As Integer

    Dim dbs As Database, tdf As TableDef, fld As Field

    Set dbs = CurrentDb

    Set tdf = dbs.TableDefs(strTblName)

    Set fld = tdf.Fields(strFldName)

    fld.ValidationRule = strValidRule

    fld.ValidationText = strValidText

End Function

下一個示例使用 SetTableValidation 函數(shù)來設(shè)置記錄級的有效性規(guī)則,以確?!敖Y(jié)束日期”字段中的值比“開始日期”字段中的值晚。

Dim strTblName As String, strValidRule As String

Dim strValidText As String

Dim intX As Integer

strTblName = "Employees"

strValidRule = "EndDate > StartDate"

strValidText = "Enter an EndDate that is later than the StartDate."

intX = SetTableValidation(strTblName, strValidRule, strValidText)

Function SetTableValidation(strTblName As String, _

    strValidRule As String, strValidText As String) _

    As Integer

    Dim dbs As Database, tdf As TableDef

    Set dbs = CurrentDb

    Set tdf = dbs.TableDefs(strTblName)

    tdf.ValidationRule = strValidRule

    tdf.ValidationText = strValidText

End Function