将 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

怎么设置access查询中空值为0?

使MS Access号码字段显示为空而不是0

在目标 c 中使用 jsonModel 映射时将默认值设置为空字段

空字符串字段作为空字段

在使用 VB.NET 的 Access 中将空字符串字段插入为 null