这是我的问题。我目前被迫使用Access,我正在编写一些可以添加到表单中的通用验证。
根据错误“你试图将Null值分配给不是Varient数据类型的变量”,在form_error中捕获空字段一切顺利“
我所需的所有varchar字段都是NOT NULL。
不幸的是,如果文本框具有大型varchar DB字段的控制源,则它的行为会有所不同。我不记得大小阈值,但假设这种行为差异等同于访问表中的文本与备忘录。)
基本上,如果删除小文本框控件的内容,它会尝试写入null并捕获错误。一切都好。
如果在链接到较大varchar或memo数据库字段的文本框中执行相同操作,则会写入一个空白字符串,该字符串被视为有效。
我通过更改varchar(50)和varchar(256)之间的db Schema,更新了Access中的链接表并重新启动Access以获得良好的测量结果来确认这一点。
我希望有人可以指向我设置的属性或者可以添加的一小部分通用代码,以使所有文本框在写入NULL / Empty字符串时表现相同,无论其大小如何他们连接到的DB字段。
请注意,在插入或编辑时,框的行为也不同。如果未在插入时填充,则会将DB条目保留为空。
答案 0 :(得分:0)
这就是你必须这样做的方式。您可以在每个文本字段上设置“验证规则”,但同样需要搜索所有文本控件。
您可以更轻松地完成这项工作。如果检查表的对象依赖关系,则可以获得所涉及的所有表单(和查询等)的列表。然后你可以确定你击中了每一个。