2013-11-26 2 views
0

Я пытаюсь создать пейджинговую систему и столкнулся с сообщением в SO, которое включало код для достижения этого. Однако, когда я запускаю свой запрос, он выдает указанную ошибку. У меня есть дважды проверенный код, но я не вижу ошибки. Я использую доступ 2010 как db. Может кто-то указать на мою ошибку. БлагодаряПочему это заявление бросает 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]» вашего первого ордена по


Edit:. Эта связь была очень полезной Это трудно читать такой длинный запрос л. ike тот, который вы разместили на SO, когда это всего лишь одна строка.

Забудьте, что я сказал раньше. Я думаю, что проблема здесь смелая.

"Выбрать ТОП«" & Row_Per_Page & "', граф () Как" & TotRows & " 'From [Select Top ('" & TotRows & " '- (('" & PAGE_NUMBER & «„- 1) *“» & Row_Per_Page & «')) Из Сообщения Сортировать по [дата] DESC] Сортировать по [дата] ASC»

Вы Называя свой отсчет поля 17 и завинчивания код перечисленных на этом сайте. Выбранный запрос подсчета должен выглядеть так.

SELECT Count(*) AS TOTAL FROM Table1 

Это вернуло бы поле «TOTAL» в таблице 1, которое сообщит вам, сколько записей существует там.

Используйте нижеследующий запрос, и он должен работать.

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

Ahh, это была очень полезная ссылка, спасибо. Я неправильно прочитал ваш запрос раньше, см. Изменения к моему сообщению выше. Вы попытались добавить «Count (*)», чтобы узнать количество записей в запросе, но сделали это неправильно. Вышеупомянутый код должен исправить вашу проблему. – ShadowLiberal

+0

В вашем коде обновления по-прежнему появляется ошибка: инструкция SELECT содержит зарезервированное слово или имя аргумента с ошибкой или отсутствием или неправильная пунктуация. – user1532468

Смежные вопросы