access数据库表如何限制数字类型的字段大小
Accesss数字类型是一个大类型。它的下面还要分为许多种小类型,而每个具体的数字类型都有其相应的取值范围,利用这个取值范围可对数字类型字段的大小做初步的限制。
如果需要在具体数字类型的基础上进一步限制字段的大小,则可以利用字段的“有效性规则”来限制其大小。
下面例子将销售记录表“佣金”金额字段的最大值设定为小于5000
1)手动方式
于表设计视图选择“佣金”字段,在下面有效性规则栏填入“<=5000” 保存即可,见图
2)代码方式(运行SQL数据定义查询)
alter table 销售记录 add constraint chk_yj check (佣金<=5000)
注意:上述语句在ACCESS数据库的默认语法下(ANSI 89)不支持设置约束,只在SQL SERVER兼容语法(ANSI 92)方可运行。
下面通过ACCESS窗体命令按钮VBA代码方式执行SQL定义查询(此方式下代码兼容ANSI 92语法,而无需更改ACCESS SQL语法设置)
Private Sub Command0_Click()
Dim strSql As String
'添加约束
'***********************
strSql = "alter table 销售记录 add constraint chk_yj check(佣金<=7000)" '定义约束
CurrentProject.Connection.Execute strSql '执行语句添加约束
'***********************
'修改约束。注意无法直接修改约束,必须先删除约束再添加新约束
'***********************
strSql = "alter table 销售记录 drop constraint chk_yj" '编写删除原有约束语句
CurrentProject.Connection.Execute strSql '删除原有约束
strSql = "alter table 销售记录 add constraint chk_yj check(佣金<=5000)" '定义新约束
CurrentProject.Connection.Execute strSql '执行语句
'***********************
'注意这种方式设置的有效性规则,在表设计视图下的字段有效性规则栏无显示但是它设置的规则实际存在且有效!
End Sub
下面是ACCESS常用数字类型的说明和取值范围列表明供参考
数字类型 范围
Byte(字节) 介于 0 到 255 之间的整型数。
Integer(整型) 介于 –32,768 到 32,767 的短整型数。
Long(长整型) 介于 –2,147,483,648 到 2,147,483,647 的长整型数。
Currency(货币) 介于-922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Single(单精度型) 单精度浮点数。范围在负数的时候是
从 -3.402823E38 到 -1.401298E-45,
而在正数的时候是从 1.401298E-45 到 3.402823E38。
Double(双精度型) 双精度浮点数。范围在负数的时候是
从 -1.79769313486231E308 到 -4.94065645841247E-324,
而正数的时候是
从 4.94065645841247E-324 到 1.79769313486232E308
Decimal(小数) 精确的数字数据类型。
变量存储为 96 位(12 个字节)带符号的整型形式,
并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,
其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,
最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。
而在有 28 个小数位的情况下,
最大值为 +/-7.9228162514264337593543950335,
而最小的非零值为 +/-0.0000000000000000000000000001。
你可以定义精度 (1 - 28) 和
数值范围( 小数点后可存储的最大位数)。
缺省精度和数值范围分别是18和0。
可以用字符类型,4位长度。
2013-09-13 · 知道合伙人软件行家
知道合伙人软件行家
向TA提问 私信TA