我键入此代码以在预先创建的数据库中创建视图:
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