Ms access ALTER表语法错误

Ms access ALTER表语法错误,ms-access,Ms Access,我在Access中遇到更新查询问题 我尝试做两件事,向表中添加一个字段,并将另一个字段中的所有值更改为相同的值 ALTER TABLE 103 ADD COLUMN test TEXT; UPDATE 103 SET [103].Workcenter = "103"; 当我独立运行这两行时,它们工作正常,但当我将它们放在同一个查询中时,ALTERTABLE语句中出现语法错误。有人知道我为什么不能这么做吗 如果我可以添加一列并将该字段中的所有值更新为默认值,那也太好了。我在ALTERTABLE命

我在Access中遇到更新查询问题

我尝试做两件事,向表中添加一个字段,并将另一个字段中的所有值更改为相同的值

ALTER TABLE 103 ADD COLUMN test TEXT;
UPDATE 103 SET [103].Workcenter = "103";
当我独立运行这两行时,它们工作正常,但当我将它们放在同一个查询中时,ALTERTABLE语句中出现语法错误。有人知道我为什么不能这么做吗

如果我可以添加一列并将该字段中的所有值更新为默认值,那也太好了。我在ALTERTABLE命令中尝试了默认值,但它也不起作用


提前感谢您的建议

正如ron tornambe所说,在一个Access查询中不能有多个命令。它们不支持批处理

在对表进行更改时,VBA代码是您的朋友:Access中使用的数据定义语言比直接操作数据库对象时VBA中可用的数据定义语言更为有限

例如,要完全按照你的要求去做:

公共子添加字段和更新 “初始化” Dim数据库作为DAO.Database 将tb设置为DAO.TableDef 将fd设置为DAO.Field Set db=CurrentDb “拿103桌” 设置tb=db.TableDefs103 '创建一个新的'test'字段,长度为128个字符' 设置fd=tb.CreateFieldtest,dbText,128 '设置新字段的默认值' fd.DefaultValue=000 '将新字段添加到103表中 tb.Fields.Append fd '现在进行更新 db.Execute UPDATE 103 SET[103]。工作中心='103';,dbFailOnError 调试。打印更新记录的数量:&db.RecordsAffected "清理", 设置fd=无 设置tb=无 Set db=Nothing 端接头
这是一个玩笑,尽管您可能还想做更多的事情,例如,根据需要设置索引、默认格式等。

正如ron tornambe所说,在Access查询中只能有一个命令。它们不支持批处理

在对表进行更改时,VBA代码是您的朋友:Access中使用的数据定义语言比直接操作数据库对象时VBA中可用的数据定义语言更为有限

例如,要完全按照你的要求去做:

公共子添加字段和更新 “初始化” Dim数据库作为DAO.Database 将tb设置为DAO.TableDef 将fd设置为DAO.Field Set db=CurrentDb “拿103桌” 设置tb=db.TableDefs103 '创建一个新的'test'字段,长度为128个字符' 设置fd=tb.CreateFieldtest,dbText,128 '设置新字段的默认值' fd.DefaultValue=000 '将新字段添加到103表中 tb.Fields.Append fd '现在进行更新 db.Execute UPDATE 103 SET[103]。工作中心='103';,dbFailOnError 调试。打印更新记录的数量:&db.RecordsAffected "清理", 设置fd=无 设置tb=无 Set db=Nothing 端接头
这是一个玩笑,尽管您可能想做更多的事情,例如,根据需要设置索引、默认格式等。

一些表设计功能仅在使用DAO对象模型修改TableDef时可用。其他仅在从ADO连接执行DDL语句时可用

您的表格设计更改涉及两种方法均可使用的功能。你可以随意使用,但我个人会选择这种方式:

Dim strDdl As String
strDdl = "ALTER TABLE 103 ADD COLUMN test TEXT(128) DEFAULT ""000"";"
CurrentProject.Connection.Execute strDdl

某些表设计功能仅在使用DAO对象模型修改TableDef时可用。其他仅在从ADO连接执行DDL语句时可用

您的表格设计更改涉及两种方法均可使用的功能。你可以随意使用,但我个人会选择这种方式:

Dim strDdl As String
strDdl = "ALTER TABLE 103 ADD COLUMN test TEXT(128) DEFAULT ""000"";"
CurrentProject.Connection.Execute strDdl

我认为MS Access不支持多个命令批处理。有什么原因不能使用VBA执行此操作吗?可能没有,我是Access新手,不知道查询不能执行此操作。我试试VBA谢谢!我认为MS Access不支持多个命令批处理。有什么原因不能使用VBA执行此操作吗?可能没有,我是Access新手,不知道查询不能执行此操作。我试试VBA谢谢!