缺少右括号是一个小问题。
主要问题是Access SQL中对DEFAULT子句的支持有限。
您需要通过 ADO 连接运行 SQL 命令:
SQL SET DEFAULT not working in MS Access
或将“查询设计”下的“访问”选项设置为 ANSI 92 兼容:
SQL to add column with default value
编辑
是的,我在 Access 2010 的 .accdb 中测试了第二个选项(仅第二个)。
我设置了选项Object Designer - Query design - SQL Server Compatible Syntax (ANSI 92) - Use in this database。 (因为我有德语访问权限,所以猜到了确切的措辞)。
Access 显示警告,然后执行自动压缩和修复。之后,我可以在新查询中执行来自问题的 SQL,只需将右括号添加到 SQL 字符串。
是/否字段是使用default value = 0 创建的。
编辑 2
将SQL Server Compatible Syntax (ANSI 92) 选项恢复为未选中状态,我也测试了第一个建议,只需遵循 HansUp 的代码即可。
以下子使用默认值创建了表。
Public Sub CreateTrackTable()
Dim S As String
S = "CREATE table Track (WebCompareString CHAR(255), Master INT, Child INT, " & _
"Merged BIT NOT NULL DEFAULT 0, Children_Updated BIT NOT NULL DEFAULT 0, " & _
"Deleted BIT NOT NULL DEFAULT 0, TrackId INT PRIMARY KEY);"
CurrentProject.Connection.Execute S
End Sub
因此,您无法从查询设计器运行此查询(除非您设置了语法选项),但您可以从 VBA 执行此操作。