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

时间:2013-11-18 19:35:32

标签: sql vba ms-access

我在MS Access中使用VBA相当新,我无法将SQL语句嵌入到VBA代码中。我有一个包含近200个表的数据库,我想将每个表中一列(名为lake)的数据类型更改为“text”数据类型。我编写了以下代码,但不断收到ALTER TABLE语句的语法错误。

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

有谁能告诉我为什么我会收到语法错误?

谢谢,
保罗

1 个答案:

答案 0 :(得分:3)

这句话不正确:

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);"