2015-09-24 80 views
3

我輸入這個代碼來創建一個預先創建的數據庫視圖:試圖在Access中創建視圖提供「語法錯誤在CREATE TABLE語句」

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

當我試圖運行Access(2007)與響應錯誤消息:「CREATE TABLE語句中的語法錯誤」。

爲什麼?

+0

Microsoft Access數據庫引擎不支持使用CREATE VIEW的,或任何DDL語句與非Microsoft Access數據庫引擎databases.https://msdn.microsoft.com/en-us/library/bb177895(v = office.12).aspx –

回答

0

沒有太多關於您試圖在哪個數據庫中創建視圖的信息。如果您嘗試在訪問中創建視圖,那麼您應該將訪問導航欄中的所有查詢視爲VIEWS。

這些可以使用VBA通過操縱QueryDefs被創建的對象看herehere

+0

您是否發現上述有用?如果是這樣,請舉出答案。 – HarveyFrench

2

Access支持CREATE VIEW當您從ADO/OleDb的執行。這段代碼工作,因爲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