简单的Access数据库问题

ygs202 2002-03-27 09:33:57
我已设计好了一个数据库,里面包含2个表,表中已有大量数据记录,在使用过程中发现,某个字段的长度不够(原来是dbtext类型,长度50),现在想改变其长度为100,数据类型不变,如何实现?原数据记录要保留。赐教!
...全文
4 点赞 收藏 23
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sz_boy 2002-04-07
创建新的数据表,根据你的要求修改发 Table 的结构,再用以下的 SQL 来把旧资料 Copy 过去:
Insert Into new_Tb_Name (Fd1,fd2,...fdx) Select Old_Tb_name.Fd1,Old_Tb_name.Fd2,...Old_Tb_name.Fdx From Old_Table_name Order by Fd_Key
其中 Fd 是一一对应的.切记!
回复
ygs202 2002-04-07
sz_boy(Mike) ,这个方法当然可行了,我的同事也推荐我这么做,就是有点麻烦,可到底有没有用语句直接对原数据表中的字段修改其长度或类型的方法呢?好象应该有。上面用alter TABLE语句修改不能成功,提示语法错误。
回复
ygs202 2002-04-04
用“alter TABLE 分层数据表 ALTER 主层号 dbtext(100)”语句修改仍提示“alter TABLE 语法错误”,是否本身不能用语句修改?应该不会吧?

回复
frankyao 2002-04-02
alter TABLE 分层数据表 ALTER 主层号 dbtext(100)

一般直接到数据库里去改就行了,不需要再用什么语句来改
你的数据丢不丢失跟你所改的数据类型类型有关
回复
ygs202 2002-04-02
frankyao(穿越无边),能否写出一个例子,说明怎样更改字段类型或字段大小?
回复
810303 2002-04-01
用access不就可以了吗?
回复
frankyao 2002-04-01
alter table 的语法格式呀
没有MODIFY ,有ALTER [COLUMN] FieldName1,可以修改表的字段
回复
water_j 2002-04-01
楼上!!??
回复
frankyao 2002-04-01
ALTER TABLE TableName1
ADD | ALTER [COLUMN] FieldName1
FieldType [(nFieldWidth [, nPrecision])]
[NULL | NOT NULL]
[CHECK lExpression1 [ERROR cMessageText1]]
[DEFAULT eExpression1]
[PRIMARY KEY | UNIQUE]
[REFERENCES TableName2 [TAG TagName1]]
[NOCPTRANS]

– Or –

ALTER TABLE TableName1
ALTER [COLUMN] FieldName2
[NULL | NOT NULL]
[SET DEFAULT eExpression2]
[SET CHECK lExpression2 [ERROR cMessageText2]]
[DROP DEFAULT]
[DROP CHECK]

– Or –

ALTER TABLE TableName1
[DROP [COLUMN] FieldName3]
[SET CHECK lExpression3 [ERROR cMessageText3]]
[DROP CHECK]
[ADD PRIMARY KEY eExpression3 TAG TagName2]
[DROP PRIMARY KEY]
[ADD UNIQUE eExpression4 [TAG TagName3]]
[DROP UNIQUE TAG TagName4]
[ADD FOREIGN KEY [eExpression5] TAG TagName4
REFERENCES TableName2 [TAG TagName5]]
[DROP FOREIGN KEY TAG TagName6 [SAVE]]
[RENAME COLUMN FieldName4 TO FieldName5]
[NOVALIDATE]

ALTER [COLUMN] FieldName1

Specifies the name of an existing field to modify.
回复
water_j 2002-04-01
alter TABLE 好象没有MODIFY !
GZ!
回复
ygs202 2002-04-01
没办法,仍提示alter TABLE 语法错误。
回复
water_j 2002-03-31
wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 adVarChar(100)"

wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 dbInteger"
回复
ygs202 2002-03-31
water_j(jxp),你好,不知为什么,用你的语句仍然提示:“ALTER TABLE语句中语法错误”,我看了SQL的书籍,alter TABLE 后面只有ADD(增加字段)和DROP(删除),没有MODIFY(修改),是不是因为这个原因?不信你试一试。盼指教!
回复
water_j 2002-03-30
wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 dbText(100)"
回复
water_j 2002-03-30
wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 dbInteger(50)"
回复
water_j 2002-03-30
wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 dbText(50)"
回复
ygs202 2002-03-30
刚才写错了,DBTEXT(50)改为DBTEXT(100)。原字段大小为50

盼指教!
回复
ygs202 2002-03-30
我用下面的代码更改表名为”分层数据表“中的某字段“主层号”大小为100,运行后提示错误:“ALTER TABLE语句中语法错误”,但哪里错了呢?
Private Sub Command1_Click()
Dim wb As Database
Set wb = OpenDatabase("c:\11.mdb")
wb.Execute "alter TABLE 分层数据表 MODIFY 主层号 DBTEXT(50)"
wb.Close
End Sub
若更改其数据类型为数值型integer ,大小不变,又如何写语句?急。



回复
NFDSOFT 2002-03-28
都可以
回复
hillmanweb 2002-03-27
以上两种方法都可行,都不会丢失数据,但操作前请先备份数据库,以防万一
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告