sql – 在Access中尝试CREATE VIEW会出现“CREATE TABLE语句中的语法错误”

我键入此代码以在预先创建的数据库中创建视图:
CREATE VIEW NHTrips AS
SELECT TripID,TripName,StartLocation,State,distance,MaxGrpSize,Type,Season
FROM Trip
WHERE State = 'NH' 
;

当我尝试运行Access(2007)响应时出现错误消息:“CREATE TABLE语句中的语法错误.”

为什么?

解决方法

从ADO / OleDb执行时,Access支持CREATE VIEW.此代码段有效,因为CurrentProject.Connection是一个ADO对象…
Dim strsql As String
strsql = "CREATE VIEW NHTrips AS" & vbCrLf & _
    "SELECT TripID,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,Season" & vbCrLf & _
    "FROM Trip" & vbCrLf & _
    "WHERE State = 'NH';"
CurrentDb.createqueryDef "NHTrips",strsql

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...