Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите, пожалуйста, посчитать количество значений на форме
 
 автор: niacin   (03.12.2008 в 23:45)   личное сообщение
 
 

Помогите, пожалуйста!
Есть ленточная форма с выведенными данными. Одно из текстовых полей это фамилии людей, которые повторяются в хаотичном порядке. Возможно ли посчитать количество фамилий и вывести в техт бокс на форме число? Не могу использовать Count т.к., например, фамилия "Иванов" встречается 5 раз, а "Петров" - 3 раза, т.е. фамилии две, а значений пять.
Пример: Ивановых 5, Петровых 2, Сидоровых 3; значений 10, а людей (или фамилий) 3. Вот это значения я и хотел бы получить.
Access 2000, 2003, 2007

  Ответить  
 
 автор: Скорп   (04.12.2008 в 00:19)   личное сообщение
17 Кб.
 
 

DCount

  Ответить  
 
 автор: niacin   (04.12.2008 в 02:15)   личное сообщение
 
 

to Скорп: огромное спасибо за быстрый ответ и прекрасный пример!
Но проблема в том, что в DCount берет фамилии из ТАБЛИЦЫ, а у меня все данные на ФОРМЕ. И во многих случаях в результате запроса не все фамилии выводятся из таблицы на форму. Попробовал подставить в формулу Form вместо Таблица, но показывает Error.
Может, создать временную таблицу из формы и там уже применить DCount? Но я не знаю как

  Ответить  
 
 автор: osmor   (04.12.2008 в 10:22)   личное сообщение
 
 

"Есть ленточная форма с выведенными данными" - откуда берутся данные в форме?
Я подозреваю что из таблицы.
т.е. ничего не мешает вам использовать Dcount указам имя таблицы или запроса откуда берет данные форма.
IMHO, форма нужна только для для интерактивной работы с данными. Форма не содержит данных, она их только отображает, сами данные находятся в таблицах именно от туда их и нужно брать для программной обработки.

  Ответить  
 
 автор: Lukas   (04.12.2008 в 10:50)   личное сообщение
 
 

Добавлю, необходимо учесть в функции:
1. Наличие активного фильтра в форме.
2. Форма может быть подчиненной.

  Ответить  
 
 автор: niacin   (04.12.2008 в 17:24)   личное сообщение
 
 

всё правильно, на форму данные выводят запросы, но на форме присутствуют чекбосы, которые постоянно изменяют фильтр на форме и у меня не хватает квалификации перехватывать эти запросы. Поэтому я и подумал, что можно собрать данные уже с формы и с ними работать.
В любом случае огромное спасибо всем ответившим и желаю всем здоровья!

  Ответить  
 
 автор: osmor   (04.12.2008 в 17:56)   личное сообщение
 
 

можете кинуть сюда форму с куском данных, попробуем помочь

  Ответить  
 
 автор: niacin   (04.12.2008 в 19:54)   личное сообщение
50 Кб.
 
 

Необходимо показать количество имен в пустом текстбоксе. И если, например, удаляем какое-нибудь имя из формы, то количество имен, соответственно, должно уменьшится тоже.
Может, можно SQL запрос втиснуть в текстбокс, где можно собрать с формы имена в массив с группировкой и посчитать?

  Ответить  
 
 автор: Скорп   (04.12.2008 в 23:50)   личное сообщение
38 Кб.
 
 

смотрите Запрос2
а на форме Загрузка и После обновления

  Ответить  
 
 автор: niacin   (05.12.2008 в 01:45)   личное сообщение
 
 

Благодарю за пример, но Запрос2 работает с таблицей, что не совсем то, что нужно: если на форме с помощью правой клавиши исключить имя "Иван", то "Всего записей" уменьшается на 4 (т.к. в базе 4 человека с именем Иван), а "Всего имен" не изменяется, хотя должно уменьшится на один.
А можно ли как то из этого запроса обратится к данным на форме?

  Ответить  
 
 автор: osmor   (05.12.2008 в 10:47)   личное сообщение
59 Кб.
 
 

ну примерно так

  Ответить  
 
 автор: niacin   (05.12.2008 в 18:19)   личное сообщение
 
 

Bingo! Работает как доктор прописал! Вот что значит профи
Теперь попробую адаптировать к своей рабочей форме.

  Ответить  
 
 автор: ГлазастыйМышь   (04.12.2008 в 08:32)   личное сообщение
 
 

где должна выводится эта информация?
напротив каждой фамилии в форме или сводная информация в примечании формы?
Пусть FIO - имя столбца в запросе, а fFIO - имя поля на форме
1 вариант
рядом с фамилией поле с формулой

=-sum([FIO]=[fFIO])

2 вариант
в примечании формы разместить список, за основу источника данных взять запрос формы и сделать там группировку по FIO, и count по любому другому полю

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList