2013-11-26 66 views
0

我想創建一個分頁系統,並且遇到了一個包含實現這個代碼的SO中的文章。但是,當我運行我的查詢時,它會引發引用的錯誤。我有雙重檢查代碼,但無法看到錯誤。我使用Access 2010作爲分貝。有人能指出我的錯誤嗎?由於爲什麼這個語句拋出OleDbException

SELECT語句包含保留字或參數名稱 拼寫錯誤或丟失,或標點符號不正確。

Dim Row_Per_Page As Integer = 4 
Dim TotRows As Integer = 17 
Dim Page_Number As Integer = 2 

Dim oledbCmd As OleDbCommand = New OleDbCommand("Select TOP '" & Row_Per_Page & "' *, Count(*) As '" & TotRows & "' From [Select Top('" & TotRows & "' - (('" & Page_Number & "' - 1) * '" & Row_Per_Page & "'))From Postings Order By [Date] DESC] Order By [Date] ASC", oledbCnn) 

回答

0

它看起來像你對我有對你的查詢結束的問題,特別是這一部分。

從職位順序按[日期] DESC]排序[日期] ASC

首先,你有兩個順序按的,其次我覺得你之前忘了‘,[’你的第一個排序的「DESC]」在「[日期] DESC]


編輯:這種聯繫是非常有益的很難看這麼長的查詢湖如果只有一行,你就發佈在SO上。

忘記我之前說過的話。我認爲這裏的問題大膽。

「 「作爲,計數()'」 & TotRows & 「選擇TOP」 & Row_Per_Page & 「 '從[選擇頂層('」 & TotRows & 「 ' - (('」 & PAGE_NUMBER & 「‘ - 1)*’」 & Row_Per_Page &「「))從職位順序按[日期] DESC]排序[日期] ASC」

你命名你的計數字段17和搞砸了的代碼上市在那個地方。選擇計數查詢應該如下所示。

SELECT Count(*) AS TOTAL FROM Table1 

這將在Table1中返回一個名爲'TOTAL'的字段,告訴您在那裏存在多少記錄。

使用下面的查詢,它應該工作。

Select TOP Row_Per_Page *, Count(*) AS TOTAL From [Select TOP (TotRows - ((Page_Number - 1) * Row_Per_Page) From Postings Order By ColumnName DESC] Order By ColumnName ASC 
+0

我是一位新用戶,並遵循分頁教程。方括號讓我困惑,因爲我從來沒有在查詢中看到過這些。這是我正在使用的網站:http://www.jertix.org/en/blog/programming/implementation-of-sql-pagination-with-ms-access.html如何繼續此操作。謝謝 – user1532468

+0

啊,這對鏈接很有幫助,謝謝。我之前誤解了您的查詢,請參閱上述文章的編輯。您試圖添加'Count(*)'以獲取查詢中找到多少記錄的計數,但是沒有正確執行。上面的代碼應該可以解決你的問題。 – ShadowLiberal

+0

您的更新代碼仍會產生以下錯誤:SELECT語句包含拼寫錯誤或缺少的保留字或參數名稱,或標點符號不正確。 – user1532468

相關問題