哪位对数据库熟悉的高手请进!

zhoulang3 2011-01-10 03:45:38
对表添加数据时,由于该字段在设计表时设置不允许为空,所以无法添加有空值的记录,于是用alter table table1 alter column column1 char null 语句后,可以添加为空的数据,但是后来发现该字段数据后面有许多空格(以前设计时长度为255),
而且执行前面的语句后,打开表结构查看,允许为空选项依然为否. 发现有空格后,首先用alter table table1 alter column column1 varchar null; 修改字段类型,将它改为varchar型.然后再删除以前加的数据后面的空格,执行的语句是update table1 set column=rtrim(column1), 结果这个时候提示 该字段不允许为零长度! 而且插入为空值的时候也不允许插入! 反过来先删除空格然后再改类型为varchar ,插入空值的数据时同样提示不允许插入零长度的数据! 有哪位大虾,帮帮忙吧! 在这里先谢谢啦!
...全文
126 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-01-11
  • 打赏
  • 举报
回复
把你这个字段在ACCESS中的表设计界面改
允许空字符串:
wwwwb 2011-01-11
  • 打赏
  • 举报
回复
vba:
CurrentDb.TableDefs("wenti").Fields("RCode").Required = False
CurrentProject.Connection.Execute ("update wenti set RCode=iif(len(trim(RCode))=0,'9999',trim(RCode))")
CurrentProject.Connection.Execute ("alter table wenti alter RCode varchar(30)")
测试通过,你对RCode中的9999进行处理即可,你
你原来RCode中有空字符串
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
可以加你QQ吗?
必填 应该是否,可能有误操作在里面 主要是把以前数据后面的空格删掉,后面添加记录时,RCode字段的数据后面没有空格(可直接改成以前的宽度10);然后可以添加'' 的数据。
谢谢啦!
wwwwb 2011-01-11
  • 打赏
  • 举报
回复
RCode
默认值:""
必填:是
允许空字符串:否
现在要怎么修改?
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
第二个 RCode
wwwwb 2011-01-11
  • 打赏
  • 举报
回复
哪个字段
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wwwwb 的回复:]
必填属性为 是:每条记录必须有此字段的内容,要看到你的MDB才能查找问题所在
[/Quote]

已经上传上去了, 只有一个表! 地址是: http://access911.net/csdn/FileDescription.asp?mdb=2011-1-11&id=12
谢谢啦!
wwwwb 2011-01-11
  • 打赏
  • 举报
回复
必填属性为 是:每条记录必须有此字段的内容,要看到你的MDB才能查找问题所在
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wwwwb 的回复:]
如果可以的话,
上传你的MDB到www.access911.net/csdn
只要有问题的表、查询,用WINRAR压缩
[/Quote]

前面错了,那字段的必填属性为 是。 而在没改它类型之前, 必填属性为 否 ;而且宽度也由10变成255(这个应该是我改变类型时没设宽度,就只有char)
wwwwb 2011-01-11
  • 打赏
  • 举报
回复
如果可以的话,
上传你的MDB到www.access911.net/csdn
只要有问题的表、查询,用WINRAR压缩
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 acmain_chm 的回复:]
alter table table1 alter column column1 char null
改为
alter table table1 alter column column1 varchar(10) null

注意CHAR与VARCHAR的差别。可以在GOOGLE中搜索一下这两种数据类型的定义。
[/Quote]

你这个我之前也试过,如果就是char 还是可以执行删除后面空格的语句, 但是改成varchar就不行了,插入像 values('') 这样的就会提示该字段不允许零长度数据!
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwwwb 的回复:]
1、alter column column1 char null 语句后,
怎么执行的,ADO?
2、可以添加为空的数据,:是空字符串(即零长度字符串)还是NULL
[/Quote]

语句是在我们公司自己做的一个专门执行SQL语句的软件里面执行的!
而我添加的数据就只是 values('') 这种形式的,就两个单引号
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
同样如此,我用update wenti set RCode='' where RCode='9999' 同样提示
现在我找到的方法就是 还是设类型为char只是加个宽度为10 再删除前面数据后面的空格。只是以前为空的数据还是默认有十个空格! 因为改成varchar null 还是无效! 只要它对以后程序读它时不会出错就可以了! 还是要谢谢你! 呵呵!
WWWWA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhoulang3 的回复:]
引用 15 楼 wwwwb 的回复:
vba:
CurrentDb.TableDefs("wenti").Fields("RCode").Required = False
CurrentProject.Connection.Execute ("update wenti set RCode=iif(len(trim(RCode))=0,'9999',trim(RCode))")
Curren……
[/Quote]
测试了一下,因为你的允许空字符串为否,输入1、2个空格没有问题
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wwwwb 的回复:]
vba:
CurrentDb.TableDefs("wenti").Fields("RCode").Required = False
CurrentProject.Connection.Execute ("update wenti set RCode=iif(len(trim(RCode))=0,'9999',trim(RCode))")
CurrentProject.Connection.……
[/Quote]
以后添加空数据没影响吧!
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 acmain_chm 的回复:]
把你这个字段在ACCESS中的表设计界面改
允许空字符串:是
[/Quote]

可是我只能写SQL语句出来,数据库不在我手里! 只能写语句让别人执行!
zhoulang3 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wwwwb 的回复:]
vba:
CurrentDb.TableDefs("wenti").Fields("RCode").Required = False
CurrentProject.Connection.Execute ("update wenti set RCode=iif(len(trim(RCode))=0,'9999',trim(RCode))")
CurrentProject.Connection.……
[/Quote]

原来有是我加上去的! 因为有些记录RCode值为空! 谢谢你啊!直接执行括号里面的语句吧!
ACMAIN_CHM 2011-01-10
  • 打赏
  • 举报
回复
alter table table1 alter column column1 char null
改为
alter table table1 alter column column1 varchar(10) null

注意CHAR与VARCHAR的差别。可以在GOOGLE中搜索一下这两种数据类型的定义。
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
1、alter column column1 char null 语句后,
怎么执行的,ADO?
2、可以添加为空的数据,:是空字符串(即零长度字符串)还是NULL
zhoulang3 2011-01-10
  • 打赏
  • 举报
回复
ACCESS 数据库,但可能也要用到SQL上面,因为现在已经将ACCESS转换成SQL了,两个库都在用! 必填字段和允许空字符属性 均为否 但是之前我设为char null 时 可以添加进数据为空的记录啊?
加载更多回复(1)

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧