[英]MS Access Form events, VBA
我在访问表格中有3个字段。
有规则。 如果字段2中的值为空,则字段3将等于字段1中的值,因此我希望它自动填充字段1中的字段3。如果该值不为null,则用户将手动填充字段记录。
我已经将表单加载事件设置为:
If Me.field2 = "" Then
Me.field3 = Me.field1
我遇到的问题是,用户可能想要更改字段1的预填充值,并且如果相应的字段2记录为空,我希望使用用户在字段1中更改的相同值来更新字段3。不需要每次都重新加载表单以进行此更新。 我在After_Update事件和change事件中尝试了上面的语法,但是它没有更新。
谁能暗示我在做什么错?
谢谢,迈克
空字符串或null的另一个测试是
if len(field1 & "")=0 then 'do null stuff
将一个空字符串附加到null或一个空字符串会导致一个空字符串,然后可以测试其长度
迈克已经得到了答案,但是我将以解释的形式给出更完整的答案。
这里的问题是,您正在尝试将null
字段与空字符串进行比较。 就像你完成了
if null = "" then
'do stuff
end if
问题是当在比较中使用null
时,结果始终为null-这导致if
评估为false。 您甚至无法做到这一点:
if not(null) then
'do stuff
end if
要么
if not (null <> "") then
'do stuff
end if
常规的解决方案是我们的isnull(x)
,如果x
为null
,则结果为true
。
正如Tim Williams指出的,您可以使用:
IsNull(x) or x=""
如果x
只能为空字符串返回null,则有些人可能认为x=""
是多余的。
这也适用:
if Nz(Field1, "") <> "" then 'do null / empty stuff
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.