Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-表

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

时 间:2007-12-15 08:37:29
作 者:竹笛   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:用代码定义字段AllowZeroLength和Required属性
正 文:

(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



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助