Номера строк в результате запроса с использованием Microsoft Access
Я всегда использую этот запрос на сервере sql, чтобы получить номер строки в таблице:
Сейчас я работаю в Access 2010, и, похоже, это не работает. Есть ли в Access замена этому запросу?
7 ответов
MS-Access не поддерживает ROW_NUMBER (). Используйте ТОП 1:
Если вам нужна 15-я строка — в MS-Access нет простого встроенного способа сделать это. Вы можете смоделировать номер строки, используя обратный вложенный порядок, чтобы получить это:
Я могу опоздать. Просто добавьте новый идентификатор поля в таблицу с типом AutoNumber. Это сгенерирует уникальные идентификаторы и также может использоваться в Access.
Спасибо за ваши решения выше! DCount тоже помог мне!
Мне пришлось использовать комбинацию столбцов даты и уникальный идентификатор для части сортировки (а также некоторые дополнительные условия), поэтому вот что я в итоге сделал: 1) Мне пришлось проверить, было ли DateColumnA нулевым, а затем проверить если DateColumnB был пустым, используйте DateColumnC; тогда, если несколько записей имеют одинаковое значение даты, все они имеют один и тот же идентификатор! 2) Итак, я решил использовать целочисленный уникальный идентификатор таблицы и добавить его ко времени как «минуты». Это всегда будет давать разные результаты. 3) Наконец, приведенная выше логика приводит к тому, что счет начинается с 0 . поэтому просто добавьте 1!
Я надеюсь, что это помогает вам!
Поскольку я сортирую по строковому полю в алфавитном порядке, а НЕ по идентификатору, подходы Count (*) и DCOUNT () у меня не работали. Мое решение заключалось в том, чтобы написать функцию, возвращающую номер строки:
Он использует 3 переменные уровня модуля для запоминания между вызовами
Хотя это старый вопрос, у меня это сработало, но я никогда не проверял его эффективность .
Некоторые преимущества этого метода:
- Он также не зависит от порядка таблицы — RowID рассчитывается на основе его фактического значения и тех, которые меньше него.
- Этот метод может применяться к любому типу (первичный ключ) (например, Number , String или Date ).
- Этот метод справедливо не зависит от SQL или требует очень небольшой адаптации.
Последние мысли
Хотя это будет работать практически с любым типом данных, я должен подчеркнуть, что для некоторых это может создать другие проблемы. Например, со строками рассмотрим:
Если бы я вставил: bba Boar , то Canary RowID изменится .
Другой способ присвоить номер строки в запросе — использовать функцию DCount .
Как в запросе аксесс сделать нумерацию записей
![]()
Лучший отвечающий
Вопрос
Здравствуйте, помогите пожалуйста. Уже все перепробовал. Нужно пронумеровать начиная с 1 строки запроса. Пробовал так:
Но если добавить еще WHERE, тогда нумерация работать не будет.
Может можно обойтись и без этого. Мне просто это нужно для составления списка. В базе есть предметы, нужно получить список предметов с определенными свойствами. И еще что бы выдало от 5 до 15 полученных предметов. Например с таким свойством нашлись предметы с ID — 1, 5, 6, 9 и т. д. Теперь среди них нужно отобрать 10 начиная с 5 позиции. Можно сделать это одним запросом?
Номера строк в результате запроса с помощью Microsoft Access
Я всегда использую этот запрос в sql server для получения номера строки в таблице:
теперь я работаю в Access 2010, и это, похоже, не работает. Есть ли замена для этого запроса в Access?
4 ответов
MS-Access не поддерживает ROW_NUMBER (). Используйте TOP 1:
Если вам нужна 15-я строка-MS-Access не имеет простого, встроенного способа сделать это. Вы можете имитировать номер строки, используя обратный вложенный порядок, чтобы получить это:
другой способ присвоить номер строки в запросе использовать
мне нужны были лучшие результаты X очков в команде. Ранжирование не решает эту проблему, когда есть результаты с равными точками. Поэтому мне нужен номер записи
Я сделал функцию vba в access, чтобы создать номер записи, который сбрасывается при изменении идентификатора
вы должны запросить этот запрос с where recordnumber
NB Access изменяет номер записи
- при запросе запроса отфильтрованы по записи номер
- когда вы отфильтровываете некоторые результаты
при изменении порядка сортировки
это не Ват я думал, что это произойдет.
решите это с помощью временной таблицы, сохраняя номера записей и ключи или дополнительное поле в таблице .
он использует 3 переменные уровня модуля для запоминания между вызовами
Я могу опоздать. Просто добавьте новый идентификатор поля в таблицу с типом AutoNumber. Это создаст уникальные идентификаторы и может использовать в Access too