• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Подсчет количества записей в таблице Access

  • Автор темы Автор темы MrSTEP
  • Дата начала Дата начала

MrSTEP

一步一步地会&#
Почётный участник
Регистрация
9 Май 2009
Сообщения
10,939
Реакции
225
Баллы
63
Подсчет количества записей в таблице Access

Здравствуйте. Досталась по шабашке работа - сделать небольшое приложение в MS Access, с 4 таблицами, парой форм и .... Задание на работу номер 4: в таблицу Гостиничные номера добавляется вычисляемое поле Количество проживавших. То есть, нужно найти количество записей в таблице. Я так понимаю, вычислять это надо при открытии таблицы, но не уверен, что Аксес даст такую возможность. Наш препод посоветовал сделать запрос, вычисляющий количество записей. Погуглил, так как с SQL мало знаком, сделал следующее:
Код:
SELECT [КНомера], Count (КНомера) AS [Количество проживавших]
FROM [Гостиничные номера]
GROUP By КНомера;
Однако такая конструкция вычисляет не общее количество записей, а количество записей с каждым конкретным имеющимся ключом (Поле КНомера - ключевое в таблице, с типом Счетчик).

Может есть какие-то другие способы узнать, сколько записей в таблице?
 
а, действительно, почему бы не сделать запрос в самом MS ACCESS? Оттуда потом данные и брать
 
Ну так там запрос и делается.. Почитал на сайте SQL-school.info про Использование статистических функций. Пример: Функция COUNT () Описание: Возвращает число строк в столбце. Но почему-то в моем случае она возвращает число по строке, а не столбцу. В чем дело?
 
Ну вот, разобрался. На самом деле, запрос делается так:
Код:
SELECT COUNT (*) AS [Количество проживавших]
FROM [Гостиничные номера];
То есть поле в операторе не указывается, а количество считается по всем полям (*). Ну, разобрался и хорошо. Но как добавить это поле в таблицу? Возможно ли такое?
Насколько я знаю, вычисляемые поля обитают в запросе..
 
Количество проживающих где - в конкретном номере или во всей гостинице?
Если второе, то имеем очевидную глупость - столбец, состоящий из одного и того же значения.
 
А этого я не знаю. Задание составлял очень "талантливый" человек (если краткость - сестра таланта). По идее, можно вычислить и общее количество проживавших во всей гостинице - запрос в посте #4, или по каждому номеру - нечто похожее на запрос в первом сообщении.
 
Хотя глупо.. Запись о проживавших хранится в другой таблице, но информация о них должна занестись в почти фиксированную таблицу о гостиничных номерах.. Наверно, лучше искать количество проживавших в каждом отдельном номере
 
Если совсем по-хорошему, то копировать данные из таблицы в таблицу - дурной тон, нужно использовать обзор.
 
Это как?
 
То есть, нужно найти количество записей в таблице. Я так понимаю, вычислять это надо при открытии таблицы, но не уверен, что Аксес даст такую возможность. Наш препод посоветовал сделать запрос, вычисляющий количество записей.
В качестве учебного примера вполне сойдет и
Код:
SELECT COUNT (*) AS [Количество проживавших] FROM [Гостиничные номера];
но если таблица большая, а запрос выполняется часто, лучше использовать быстрый способ на VBA:
Код:
lntCount = CurrentDb.OpenRecordset("[Гостиничные номера]").RecordCount
 
Назад
Сверху