【问题标题】:Attempting CREATE VIEW in Access gives "Syntax error in CREATE TABLE statement"在 Access 中尝试 CREATE VIEW 会给出“CREATE TABLE 语句中的语法错误”
【发布时间】:2015-09-24 20:28:01
【问题描述】:

我输入了这段代码来在预先创建的数据库中创建一个视图:

CREATE VIEW NHTrips AS
SELECT TripID, TripName, StartLocation, State, Distance, MaxGrpSize, Type, Season
FROM Trip
WHERE State = 'NH' 
;

当我尝试运行 Access(2007) 时,会返回一条错误消息:“CREATE TABLE 语句中的语法错误。”

为什么?

【问题讨论】:

标签: sql ms-access ms-access-2007 views


【解决方案1】:

当您从 ADO/OleDb 执行时,Access 支持 CREATE VIEW。这段代码 sn-p 有效,因为CurrentProject.Connection 是一个 ADO 对象...

Dim strSql As String
strSql = "CREATE VIEW NHTrips AS" & vbCrLf & _
    "SELECT TripID, TripName, StartLocation, State, Distance, MaxGrpSize, Type, Season" & vbCrLf & _
    "FROM Trip" & vbCrLf & _
    "WHERE State = 'NH';"
CurrentProject.Connection.Execute strSql

但是尝试从 DAO 执行相同的语句会触发错误 #3290 “CREATE TABLE 语句中的语法错误。” ...

CurrentDb.Execute strSql ' CurrentDb refers to a DAO Database object

这意味着如果您尝试从查询设计器执​​行该语句,您将得到相同的错误,因为它使用 DAO。

如果您可以使用 CREATE VIEW 以外的其他内容,请考虑使用 CreateQueryDef 方法通过 SQL SELECT 语句创建查询...

strSql = "SELECT TripID, TripName, StartLocation, State, Distance, MaxGrpSize, Type, Season" & vbCrLf & _
    "FROM Trip" & vbCrLf & _
    "WHERE State = 'NH';"
CurrentDb.CreateQueryDef "NHTrips", strSql

【讨论】:

    【解决方案2】:

    没有太多关于您尝试在哪个数据库中创建视图的信息。如果您尝试在 access 中创建视图,那么您应该将 access 导航栏中的所有查询视为 VIEWS。

    可以使用 VBA 通过操作 QueryDefs 对象来创建这些对象,请参阅 herehere

    【讨论】:

    • 您觉得以上内容有用吗?如果是这样,请标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 2012-07-08
    • 2021-07-29
    • 2012-05-31
    • 1970-01-01
    • 2017-06-30
    相关资源
    最近更新 更多