代码建ACCESS表时,如何允许字段为空

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

2和4呢?

      我的理解是这样的在设计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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值