将 Access 97 文本字段的默认值设置为空字符串
Posted
技术标签:
【中文标题】将 Access 97 文本字段的默认值设置为空字符串【英文标题】:Setting the default value of an Access 97 text field to an empty string 【发布时间】:2011-08-25 16:04:10 【问题描述】:使用 DAO 和 VB6,我尝试将 access 97 文本字段的默认值设置为空字符串(而不是 Null),因此:
Dim newField as DAO.Field
Set newField = myTablelDef.CreateField("NewField", dbText, 10)
newField.DefaultValue=""
但是,这被解释为 Null,并且未指定 NewField 的新记录将 Null 作为其值而不是空字符串。如果我将值更改为“默认”,这将反映在新记录中,因此代码本身是正确的。我知道可以将空字符串而不是 Null 分配给 Text 字段,那么它是如何完成的?
【问题讨论】:
我认为用 ZLS 替换 NULL 不会让你更进一步。相反,考虑对缺失数据进行隐式建模(例如,employee_number = '52644'
的表中没有一行 employee_number = '52644'
意味着无论出于何种原因他们都没有薪水)或显式(例如,Unsalaried
中存在一行) employee_number = '52644'
的表表示他们没有薪水)。
【参考方案1】:
这行得通:
txtFieldone.AllowZeroLength = True
txtFieldone.DefaultValue = """"""
不知道这里发生了什么,但我用 = "" 的查询对其进行了测试,它返回了正确的记录!
【讨论】:
也显示在 Access 设计视图中,默认值中带有“”【参考方案2】:您需要设置newField.AllowZeroLength = True
。
在 Access97 中,所有文本和备注字段都将此设置为 false。 2000 年及以后情况正好相反。
这是set them all to true via code的方法。
【讨论】:
这个答案听起来很有希望,但 AllowZeroLength 已经设置为 True。将其设置为 False 也无济于事。我预计在未指定 NewField 的情况下插入记录时会出错,但事实并非如此。 我刚刚找到了另一个参考资料,指出为了使其正常工作,您还必须将字段的必需属性设置为是.....试一试...... 现在我确实得到了错误;-) 当我将字段设为必填时,Access 拒绝接受未设置 NewField 的记录,而我希望 Access 默认插入空字符串。自己多打猎似乎表明我想要的东西是不可能的。【参考方案3】:我同意你的观点,设置它 = "" 不起作用。设置 AllowZeroLength = true,并在每次插入时,将该字段设置为“”。不完美,但它会起作用。
【讨论】:
以上是关于将 Access 97 文本字段的默认值设置为空字符串的主要内容,如果未能解决你的问题,请参考以下文章
使用 Access 2003 将 Access 2000 数据库转换为 Access 97