Access supports CREATE VIEW
when you execute it from ADO/OleDb. This code snippet works because CurrentProject.Connection
is an ADO object ...
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
However attempting to execute the same statement from DAO triggers error #3290 "Syntax error in CREATE TABLE statement." ...
CurrentDb.Execute strSql ' CurrentDb refers to a DAO Database object
That means you will get the same error if you attempt to execute that statement from the query designer because it uses DAO.
If you can use something other than CREATE VIEW
, consider using the CreateQueryDef
method to create your query with the SQL SELECT
statement ...
strSql = "SELECT TripID, TripName, StartLocation, State, Distance, MaxGrpSize, Type, Season" & vbCrLf & _
"FROM Trip" & vbCrLf & _
"WHERE State = 'NH';"
CurrentDb.CreateQueryDef "NHTrips", strSql