access数据库表如何限制数字类型的字段大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了access数据库表如何限制数字类型的字段大小相关的知识,希望对你有一定的参考价值。

只能设置成单位,例如我的字段是入学年份,我想设置只能输入4位数,该怎样设置啊??为什么他不允许我自己设定数值的

1、首先,打开数据库。一般情况下,设置字段的大小可以限制填写时字段不会大于设置的字段数。

2、选择字段,点击上面表格工具下的【字段】。

3、将字段大小后面的255改为【4】。如图所示。

4、这时,弹出提示对话框,点击【是】。

5、这样当输入的字数大于4时,后面的将不会显示。

6、也可以切换成设计视图界面,选择姓名这一字段。点击下面的【常规】,将字段大小改为【4】。

7、点击上面的保存图标,这时弹出提示对话框,同样点击【是】就完成了。

参考技术A

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。

参考技术B 那就不要设置成数字类型,数字类型长度是固定的。
可以用字符类型,4位长度。本回答被提问者采纳
参考技术C 数据类型设置为数字型,然后输入条件Between xxx and xxx。如果你选择时间的就是Between # xxx # and # xxx # 参考技术D 设为文本类型就可以了。掩码输入0000就可以了

如何绕过MS Access列号限制:定义的字段太多

我继承了一个设计非常糟糕的MS Access数据库。我正在重新设计,但与此同时我需要为当前版本提供增强功能。由于不同的数据类型问题,我不得不创建许多alter table查询来强制字段进入正确的数据类型。长话短说,我在运行alter table / alter列查询时不时遇到“Too Many Fields Defined”错误消息。我已经阅读了它,发现无论何时运行alter column query,内部MS Access Column计数都会增加。我可以通过点击Compact和Repair按钮来解决这个问题。但是,当我的最终用户运行该程序时,我不希望他们必须这样做。有没有办法以编程方式压缩和修复(检查紧凑关闭选项似乎不起作用)与VBA?或者我可以用VBA以某种方式重置内部表列数?

答案

您只能压缩已关闭的数据库 - 这意味着您的代码必须在单独的数据库中运行 - 因此您必须拆分前端,运行后端数据库的紧凑例程,然后以编程方式附加表。压缩必须在DAO中完成,因此您需要参考

Sub CompactDatabaseRoutine()
Dim dbe As DBEngine
Dim source As String
Dim dest As String

Set dbe = DBEngine
source = "C:Documents and SettingsuserMy DocumentsSales2010.mdb"
dest = "C:Documents and Settingsuser	empSales2010.mdb"

dbe.CompactDatabase source, dest
If Dir(dest) <> "" Then
Kill source
Name dest As source
End If


End Sub

以上是关于access数据库表如何限制数字类型的字段大小的主要内容,如果未能解决你的问题,请参考以下文章

ACCESS中类型操作(限制转换)

在access中,字符串和字段的区别是啥?

如何在 ms access 中更改表字段的数据类型,而无需创建新表单来更新表?

谁知道Access数据库行数有没有限制?是多少?

怎么让access数据库按照某个字段自动排序,那个字段当然是数字类型

Access 不保存列的数据类型