FAQ:用代码定义字段AllowZeroLength和Required属性

文章作者 100test 发表时间 2008:01:04 13:01:12
来源 100Test.Com百考试题网


(Q)如何用 JET SQL DDL 语句定义:
1、“必填”为“是” ——————比如用 not null关键字
2、“必填”为“否”
3、“允许空字符串”为“是”------- 比如用 NULL 关键字
4、“允许空字符串”为“否”

2和4呢?

(A)根据您的解释,我的理解是这样的在设计Table的时候,我们可以看到“必填属性”和“允许空字符串”两个属性。您希望在今后的使用过程中能够分别地对其进行修改和设置。不知道我理解的正确吗?如果我理解得不够准确,请让我知道尽可能多对问题的描述,以便我能全面理解您的问题并且能够更快解决问题。

根据我的理解,我做了一下试验,发现情况是这样的。首先,当我们采用Create或者Alter语句试图进行创建或者修改数据库表的时候无法对这两个属性就行修改。因为这两个属性并不是通过Jet SQL语句来定义的。而是表本身的一个属性,这也就是为什么无法通过SQL语句修改的原因。

虽然通过SQL语句无法对其进行修改,但是我们可以通过VB语句来进行修改。下面我将通过一段代码来显示我们如果得到某一个表中数据字段的定义情况(您可以用类似的方法来得到如何对其属性的修改)

1. 在数据库中分别建立表1,表2,表3,表4。定义“必填属性”和“允许空字符串”的4中定义。
2. 建立一个Button事件OnClick
Option Compare Database
Private Sub Command0_Click()
Dim dbs As Database
Dim tdfloop As TableDef
Set dbs = CurrentDb()

With dbs
Show which fields are required in the Fields
collections of three different TableDef objects.
RequiredOutput .TableDefs("表1")
RequiredOutput .TableDefs("表2")
RequiredOutput .TableDefs("表3")
RequiredOutput .TableDefs("表4")
.Close
End With

End Sub

Sub RequiredOutput(tdfTemp As TableDef)

Dim fldLoop As Field

Enumerate Fields collection of the specified TableDef
and show the Required property.
Debug.Print "Fields in " &. tdfTemp.Name &. ":"
For Each fldLoop In tdfTemp.Fields
Debug.Print , fldLoop.Name &. ", Required = " &. _
fldLoop.Required, "AllowZeroLength = " &. fldLoop.AllowZeroLength.
Debug.Print ""

fldLoop.Required = True
fldLoop.AllowZeroLength = True
Next fldLoop

End Sub
3. 由于我们是通过DAO方式对其属性就行修改,所以在“引用”中请包含DAO

详细的定义您可以参考下面的Access中相关主题“AllowZeroLength 属性”和“Required属性”

4.我们用示例MDB中有一个表"表1","表1"中有一个字段"a"

Private Sub Command1_Click()
Dim dbs As Database
Dim tdfloop As TableDef
Dim fldName As Field

Set dbs = CurrentDb()
Set fldName = dbs.TableDefs("表1").Fields("a")

With fldName
.AllowZeroLength = False允许空字符串为否
.Required = False必填字段为否
End With

End Sub



相关文章


恢复从Acce 2000、Acce 2002或Acce 2003数据库中删除表的方法
用CB实现图像的特技显示
使用双缓冲技术绘制曲线图
用C Builder对图像进行特殊效果处理
FAQ:用代码定义字段AllowZeroLength和Required属性
怎样在表中插入、删除和移动字段
C 编程指南学习(七)
C 编程指南学习(六)
C 编程指南学习(四)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛