ToggleButton.ValidationText 属性 (Access)

使用 有效性文本 属性来指定要输入数据时向用户显示违反记录、 字段或控件的 有效性规则 设置的消息。 读/写 String

语法

表达式ValidationText

表达 一个代表 ToggleButton 对象的变量。

备注

输入将 有效性规则 属性设置为的表达式,并将 有效性文本 属性设置为文本。 将 有效性规则 属性设置为的最大长度为 2048年个字符。 将 有效性文本 属性设置为的最大长度为 255 个字符。

对于控件,可以为任何有效的表达式中设置 有效性规则 属性。 对于字段和记录验证规则,表达式不能包含用户定义的函数、域聚合或聚合函数、 Eval 函数、 CurrentUser 方法或对窗体、查询或表的引用。 此外,字段的有效性规则不能包含对其他字段的引用。 记录,表达式可以包括该表中的字段的引用。

对于表字段和记录,您可以还设置这些属性在 Visual Basic 中使用 DAO 有效性规则 属性。

注意

在复选框、选项按钮或切换按钮控件位于选项组中时, ValidationRuleValidationText 属性不适用于它们。 它们只应用于选项组本身。

Microsoft Access 根据字段的数据类型自动验证值;例如,Access 不允许在数字字段中显示文本。 您可以设置通过使用 有效性规则 属性是更具体的规则。

如果设置 ValidationRule 属性,但未设置 ValidationText 属性,则违反验证规则时,Access 将显示一条标准错误消息。 如果设置 ValidationText 属性,则输入的文本将显示为错误消息。

例如,当为新员工添加记录时,可以输入 ValidationRule 属性,要求员工 “StartDate” 字段中的值介于公司的成立日期和当前日期之间。 如果输入的日期不在此范围内,您可以显示 有效性文本 属性消息:"开始日期不正确。

如果通过从字段列表中拖动字段来创建控件,该字段的验证规则将保持有效,尽管该规则不会显示在属性表上的控件的 ValidationRule 属性框中。 这是因为绑定到该字段的控件将继承字段的有效性规则。

控件、字段及记录的有效性规则的应用方式如下:

  • 编辑数据且焦点离开字段或控件时,将应用为字段和控件设置的验证规则。

  • 在移动到其他记录时,将应用记录的有效性规则。

  • 如果一个字段及一个与该字段绑定的控件都创建了有效性规则,在编辑数据并且焦点离开控件时将同时应用这两个有效性规则。

下表包含了 有效性规则有效性文本 属性的表达式示例。

ValidationRule 属性 ValidationText 属性
<> 0 输入项必须是非零值。
> 1000 Or Is Null 输入项必须为空或大于 1000。
Like "A????" 条目必须为 5 个字符,以字母 A 开头。
>= #1/1/96# And <#1/1/97# 输入项必须是 1996 年中的日期。
DLookup("CustomerID", "Customers", "CustomerID = Forms!Customers!CustomerID") Is Null 输入项必须是唯一的“客户ID”(域聚合函数只允许在窗体级的有效性中使用)。

如果为字段创建验证规则,Access 通常不允许在字段中存储 Null 值。 如果要允许 Null 值,请添加到 "Is Null" 验证规则中,如 中所示 "<> 8 Or Is Null" ,并确保 “必需” 属性设置为“否”。

不能为 Access (外部创建的表设置字段或记录验证规则,例如 dBASE、Paradox 或 SQL Server) 。 对于这些类型的表,只能为控件创建有效性规则。

示例

下面的示例为某个字段创建了一个有效性规则,只允许输入大于 65 的数值。 如果输入了一个小于 65 的数字,将显示一条消息。 属性是使用 SetFieldValidation 函数设置的。

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 函数设置记录级验证,以确保 EndDate 字段中的值位于 StartDate 字段中的值之后。

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

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。