Ms access microsoft access字段必须为空或具有特定长度的值
我在表单上有一个字段,我需要用户将其留空或输入一个特定长度(20个字符)的值。有没有人有可以解决这个问题的代码 我试过:Ms access microsoft access字段必须为空或具有特定长度的值,ms-access,Ms Access,我在表单上有一个字段,我需要用户将其留空或输入一个特定长度(20个字符)的值。有没有人有可以解决这个问题的代码 我试过: (Len([SIM / ENGRV]) = 20) or (isnull([SIM / ENGRV])) or ([SIM / ENGRV]="") 我假设表单中的控件(字段)名称是Text1 因此,您可以在更新前事件中使用此代码 当然,代码可以短得多 但我认为这是理解逻辑最清晰的方式 Private Sub Text1_BeforeUpdate(Cancel As Int
(Len([SIM / ENGRV]) = 20) or (isnull([SIM / ENGRV])) or ([SIM / ENGRV]="")
我假设表单中的控件(字段)名称是Text1
因此,您可以在更新前事件中使用此代码
当然,代码可以短得多
但我认为这是理解逻辑最清晰的方式
Private Sub Text1_BeforeUpdate(Cancel As Integer)
Dim varTmp As Variant
' first check if [ENGRV] > 0 to avoid devision by zero error
If Not IsNumeric([ENGRV]) And [ENGRV] = 0 Then
Text1.Undo
Cancel = True
Else
' now avoid [SIM] is null error
If Nz([SIM], "") = "" Then
Text1.Undo
Cancel = True
Else
varTmp = [SIM] / [ENGRV]
' now we know that varTmp is somthing and not empty then check the length
If Len(Trim(str(varTmp))) <= 20 Then
Text1.Undo
Cancel = True
End If
End If
End If
Private Sub Text1\u更新前(取消为整数)
Dim varTmp作为变体
'首先检查[ENGRV]>0,以避免零误差除法
如果不是数字([ENGRV]),且[ENGRV]=0,则
Text1.撤消
取消=真
其他的
'现在避免[SIM]为空错误
如果Nz([SIM],“)=”,则
Text1.撤消
取消=真
其他的
varTmp=[SIM]/[ENGRV]
'现在我们知道varTmp是somthing并且不是空的,然后检查长度
如果Len(Trim(str(varTmp))可以在表级别执行。将字段的验证规则设置为:
Len([SIM / ENGRV])=20 Or [SIM / ENGRV] Is Null
试过在哪里发生了什么-错误消息,错误结果,什么都没有?您是否尝试过textbox的验证规则属性?