Как в запросе аксесс сделать нумерацию записей
Перейти к содержимому

Как в запросе аксесс сделать нумерацию записей

Номера строк в результате запроса с использованием 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 .

Как в запросе аксесс сделать нумерацию записей

Gray Pipe

Лучший отвечающий

Вопрос

Здравствуйте, помогите пожалуйста. Уже все перепробовал. Нужно пронумеровать начиная с 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 изменяет номер записи

  1. при запросе запроса отфильтрованы по записи номер
  2. когда вы отфильтровываете некоторые результаты

при изменении порядка сортировки

это не Ват я думал, что это произойдет.

решите это с помощью временной таблицы, сохраняя номера записей и ключи или дополнительное поле в таблице .

он использует 3 переменные уровня модуля для запоминания между вызовами

Я могу опоздать. Просто добавьте новый идентификатор поля в таблицу с типом AutoNumber. Это создаст уникальные идентификаторы и может использовать в Access too

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *