Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549

Информирование пользователя о достижении набора определенного количества записей

03.03.2020, 09:59. Показов 1432. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста, как методом VBA реализовать следующий механизм.:
По сути дела. Есть некая форма, перечень деталей, в которой осуществляется набор позиций методом установки флажка. Мне нужно, чтобы при достижении количества выбранных записей >=5 показывалось предупреждение, типа "Количество выбранных деталей достигло 5 и более шт, рекомендуется остановить набор деталей и сформировать сменное задание."
На всякий случай прикладываю макет с соответствующим наполнением. Спасибо
Вложения
Тип файла: 7z БДПример.7z (25.4 Кб, 6 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2020, 09:59
Ответы с готовыми решениями:

Вывод определённого количества записей на страницу
Добрый вечер. Помогите пожалуйста. Нужно сделать вывод примерно 10 записей из таблице, не как не могу сделать, получается только одна...

Вывод определенного количества записей на РНР
Здравствуйте! Делаю блог на РНР, и сейчас возникла потребность сделать следующее: Нужно заставить код выводить не более 10...

Парсинг и вывод определенного количества записей
Доброго, пишу что то подобие чата, сначало использовал WebBrowser , но теперь просто использую парсинг и вывожу в label1 , вопрос как...

8
Эксперт MS Access
 Аватар для Eugene-LS
12075 / 5856 / 1496
Регистрация: 05.10.2016
Сообщений: 16,452
03.03.2020, 10:11
Лучший ответ Сообщение было отмечено Braser как решение

Решение

Цитата Сообщение от Braser Посмотреть сообщение
чтобы при достижении количества выбранных записей >=5 показывалось предупреждение, типа "Количество выбранных деталей достигло 5 и более шт, рекомендуется остановить набор деталей и сформировать сменное задание."
Visual Basic
1
2
3
4
5
6
7
8
9
Можно так :
Private Sub Выбор_AfterUpdate()
Dim lCount As Long
    Me.Dirty = False
    lCount = DCount("*", "Детали", "Выбор=-1")
    If lCount >= 5 Then
        MsgBox "Сообщение!", vbExclamation
    End If
End Sub
Вложения
Тип файла: zip БДПример_v02.zip (35.7 Кб, 3 просмотров)
1
Мы один, давай на "ты"
3845 / 1390 / 344
Регистрация: 16.06.2016
Сообщений: 3,283
03.03.2020, 10:25
Braser, как-то так...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Выбор_BeforeUpdate(Cancel As Integer)
Dim i As Long
    With Me.RecordsetClone
        If Not (.BOF And .EOF) Then
            .MoveFirst
            Do
                i = i + Abs(.Fields("[Выбор]"))
                .MoveNext
            Loop Until .EOF
        End If
    End With
    If i = 4 And Me.Выбор And Not Me.Выбор.OldValue Then MsgBox "А не будет ли вам?", vbQuestion
    If i > 5 Or (i = 5 And Me.Выбор) Then MsgBox "Хватит борзеть!", vbQuestion
End Sub
1
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
03.03.2020, 10:32
добавлю своего
VB.NET
1
2
3
4
5
6
7
8
Private Sub Выбор_Click()
Dim rst As Recordset
DoCmd.RunCommand acCmdSave
Set rst = CurrentDb.OpenRecordset("SELECT count(Выбор) as c FROM Детали where Выбор=true;")
If rst!c >= 5 Then
    MsgBox "Количество выбранных деталей достигло 5 и более шт, рекомендуется остановить набор деталей и сформировать сменное задание."
End If
End Sub
но вариант Eugene-LS лаконичней всего. Эта штука DCount... Всё время забываю про её существование...
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
03.03.2020, 10:38  [ТС]
Спасибо!!!

Добавлено через 1 минуту
Цитата Сообщение от amd48 Посмотреть сообщение
Эта штука DCount...
я то в курсе что она есть, но не пользовался ни разу... теперь понятно как что...
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
03.03.2020, 10:47
Braser,

Еще можно так.
Z - переменная уровня формы.
Visual Basic
1
2
3
4
5
6
7
Dim Z As Integer
Private Sub Выбор_AfterUpdate()
 Z = Z + IIf(Выбор, 1, -1)
 If Z >= 5 Then
   MsgBox "Уже " & Z & "!!!"
 End If 
End Sub
0
Мы один, давай на "ты"
3845 / 1390 / 344
Регистрация: 16.06.2016
Сообщений: 3,283
03.03.2020, 10:58
Braser, AfterUpdate это уже свершившийся факт. А если пользователь всё же не внемлет просьбе (рекомендации)? BeforeUpdate позволяет всё же избежать ненужного...
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
03.03.2020, 11:12
Цитата Сообщение от Панург Посмотреть сообщение
А если пользователь всё же не внемлет просьбе (рекомендации)?
Чё спрашивать этого пользователя?.. В моём варианте, вообще, запись сохраняется, чтоб узнать, что он там натворил
0
Эксперт MS Access
 Аватар для Eugene-LS
12075 / 5856 / 1496
Регистрация: 05.10.2016
Сообщений: 16,452
03.03.2020, 11:26
Цитата Сообщение от Панург Посмотреть сообщение
А если пользователь всё же не внемлет просьбе (рекомендации)? BeforeUpdate позволяет всё же избежать ненужного...
Совершенно согласен!
Можно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Выбор_BeforeUpdate(Cancel As Integer)
Dim lCount As Long
'Сколько было до
    lCount = DCount("*", "Детали", "Выбор=-1")
    
'Текущее значение
    If Me!Выбор = True Then
        lCount = lCount + 1
    Else
        lCount = lCount - 1
    End If
    
    If lCount >= 5 Then
        'Запрос подтверждения 
        If MsgBox("Может хватит уже ???", _
            vbYesNo + vbQuestion + vbDefaultButton1, "Лишние данные") = vbYes Then
            Cancel = True
        End If
    End If
End Sub
Вложения
Тип файла: zip БДПример_v03.zip (35.3 Кб, 0 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2020, 11:26
Помогаю со студенческими работами здесь

Rss вывод определенного количества записей
<?php $url = 'http://www.ato.ru/feed/taxonomy/term/1882'; //адрес RSS ленты $rss = simplexml_load_file($url); ...

Возврат определенного количества записей в заданном интервале
Доброго времени суток. var result = from u in projects where...

Информирование пользователя об изменении в базе данных
Здравствуйте! У меня такой вопрос. Есть некая модель в базе данных. Данными из этой модели пользуются несколько пользователей. Возможно...

Вывести число, сформированное на основании количества записей определенной рубрики (рубрик) и определенного тега (тегов)
Всем привет! Мне необходимо вывести число, сформированное на основании количества записей определенной рубрики (рубрик) и определенного...

Сигнал при достижении определенного времени
Доброе время суток. Есть программа, в которой задается начало урока. Допустим 8 часов, 30 минут(Все в отдельных переменных, int). Так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru