我在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
有谁能告诉我为什么我会收到语法错误?
谢谢,
保罗
答案 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);"