Sql 使用VBA更改Access中多个表中列的数据类型

Sql 使用VBA更改Access中多个表中列的数据类型,sql,vba,ms-access,Sql,Vba,Ms Access,我对在MS Access中使用VBA相当陌生,并且在将SQL语句嵌入VBA代码时遇到困难。我有一个包含近200个表的数据库,我想将每个表中一列(名为lake)的数据类型更改为“文本”数据类型。我编写了下面的代码,但是不断得到ALTERTABLE语句的语法错误 Public Sub changeDataType() Dim db As DAO.Database Dim table As DAO.TableDef Set db = CurrentDb For Each table In d

我对在MS Access中使用VBA相当陌生,并且在将SQL语句嵌入VBA代码时遇到困难。我有一个包含近200个表的数据库,我想将每个表中一列(名为lake)的数据类型更改为“文本”数据类型。我编写了下面的代码,但是不断得到ALTERTABLE语句的语法错误

Public Sub changeDataType()

Dim db As DAO.Database
Dim table As DAO.TableDef

Set db = CurrentDb

  For Each table In db.TableDefs
     DoCmd.RunSQL "ALTER TABLE" & table.Name & "ALTER COLUMN [lake] TEXT(100);"
  Next

Set db = Nothing

End Sub
有人能告诉我为什么会出现语法错误吗

谢谢,

保罗

这种说法不正确:

DoCmd.RunSQL "ALTER TABLE" & table.Name & "ALTER COLUMN [lake] TEXT(100);"
例如,如果“table.Name”=“myTable”,则生成的语句如下所示:

DoCmd.RunSQL "ALTER TABLEmyTableALTER COLUMN [lake] TEXT(100);"
DoCmd.RunSQL "ALTER TABLE [" & table.Name & "] ALTER COLUMN [lake] TEXT(100);"
尝试添加一个空格来分隔名称,如下所示:

DoCmd.RunSQL "ALTER TABLEmyTableALTER COLUMN [lake] TEXT(100);"
DoCmd.RunSQL "ALTER TABLE [" & table.Name & "] ALTER COLUMN [lake] TEXT(100);"

抢手货您可能想更进一步,建议
altertable[“&TABLE.Name&”。。。“
以增加安全性。aha。。。也很好。。。我将编辑答案以包括。。。谢谢,谢谢大家。Gord,有了你的额外建议,我让它开始工作了…至少我认为…Access还在运行它。多亏了两个人,我们应该能够。。。您收到的错误消息是什么?