Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
5 / 5 / 6
Регистрация: 12.07.2011
Сообщений: 727

Цикл по записям подчиненной формы

06.04.2014, 20:20. Показов 3947. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. ННа Аксесс сделал форму, в которой есть подчиненная форма. можно ли в цикле перебрать все строки подчиненной формы? в Подчиненной форме следующие поля: Документ,Дата, КолЧасов. Пользователь может ввести несколько документов и поставить по каждому время выполнения КолЧасов. В цикле хочу проверить, не ввел ли юзер часы, не заполнив документ.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2014, 20:20
Ответы с готовыми решениями:

Переход по записям подчиненной формы
Искал в гугле толком ничего не нашел, как переходить по записям подчиненной формы, но делать это с главной формы. Чтобы было понятней,...

Переход по записям из главной формы в не подчиненной форме
Переход по записям из главной формы в не подчиненной форме как после выбора значений (в поле со списком "ak" ) из формы 2 ...

Цикл по записям в текстовом поле формы
Добрый день! Подскажите пожалуйста, как обработать несколько записей из текст бокса в форме. Юзеры вставляют список серийныйх...

7
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
06.04.2014, 20:39
Лучший ответ Сообщение было отмечено jediAlex как решение

Решение

Вы можете проверить запросом по всей таблице
SQL
1
SELECT * FROM Таблица WHERE Документ IS NULL AND КолЧасов IS NOT NULL
Но в принципе такой ситуации вообще можно избежать. Достаточно либо сделать поле документа обязательным, либо на событии До обновления формы проверять заполненность полей.

Если же Вы все-таки хотите проверять в коде из главной формы (по кнопке?), то можно использовать такой код. Здесь id это уникальное поле, например счетчик
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim s as String
With Me.МояПодчиненнаяФорма.Form.RecordsetClone
  .Movefirst
  Do Until .EOF
    if isnull(![Документ]) and not isnull(![КолЧасов]) then
      s = s & !id & ", "
    End If
    .Movenext
  Loop
  If Len(s) > 0 Then
    s=left(s, Len(s)-2)
    Msgbox "Записи " & s & " неполные"
  End If
End With
2
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
06.04.2014, 20:43
jediAlex, Как я думаю алгоритм заполнения формы должен быть таким:
1. заполнение формы с верху в низ;
2. Только доведя запись до конца возможно начать следующую запись;
3. Вывод: поля должны быть обязательными.

Второй случай: если все же пользователь отмечает какую работу он начал (начал обрабатывать некий документ) и не закончив обработку (по разным причинам) начинает обрабатывать другие документы, то естественно поле КолЧасов не может быть обязательным. В этом случае хочу предложить организовать работу так: количество часов проставляется только тогда, когда пользователь нажмет кнопку а-ля Документ заполнен, т.е после полного заполнения документа.
0
5 / 5 / 6
Регистрация: 12.07.2011
Сообщений: 727
06.04.2014, 20:53  [ТС]
ситуация такая: главная форма - отчет сотрудника, в которой выводится в список перечень работ сотрудника. А в подчиненную форму по двойному нажатию на список пишется документ, который выбрал сотрудник для отчета по времени выполнения этого документа. В подчиненную форму ставится id выбранного документа из списка главной формы. Юзеры многие вообще не смотрят, выбрали документ или нет... лепят цифру в пустое место и закрывают форму... да еще такие есть, одаренные, которые несколько пустых строк в подчиненной форме часами заполняют... вот поэтому и встал вопрос о проверке заполнения.Некоторые же напротив - все выбрали, а часы не поставили и сохраняют запись о работе без времени...Делал поля в таблице, к которой относится подчиненная форма, обязательными для заполнения. Но наверное не так сделал что то.. при ошибке юзера - любой из выше упомянутых запись не сохраняется( что логично конечно) и происходит вылет из Аксесса (у юзеров RunTime стоит, а не полный аксесс)
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
06.04.2014, 20:57
jediAlex, а есть возможность выложить эту часть базы?
0
5 / 5 / 6
Регистрация: 12.07.2011
Сообщений: 727
06.04.2014, 21:08  [ТС]
Формат accdb - аксесс 2013-й Смотрите форму EzhetOtchet. Запрет ввода в поле подчиненной формы. Вот ссылка на мою же тему здесь... посвящена той же проблеме, но разобраться так и не удалось...
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
06.04.2014, 21:32
jediAlex, Посмотрел ваш файл. По-моему нет ни чего страшного, что пользователь не проставил количество часов проведенного за тем или иным документом. Таблицу ЕжедОтчет можно использовать как табель рабочего времени (кстати у Вас его нет). И по нему можно судить сколько часов работник отработал в данный день. Получается, что каждый сам себя табелирует. И если он забыл проставить несколько часов на нескольких документах, то у него получится не полный рабочий день. И вы открывая табель рабочего дня видите, что если за вчерашний или последующие дни стоят часы менее 8 часов (невыхода должны быть указаны), то тут что-то не так.
При этом каждый отмечает какую работу он взял на себя и соответственно она должна быть завершена. Это я плавно перехожу к форме EzhetOtchet. На ней я не увидел поля, в котором бы отмечалось, что работа закончена (типа логического). Получается, что при выборе пользователя высвечиваются все его работы прошлые и текущие. А ведь с каждым днем их все больше и больше. В итоге их будет очень много. В них можно запутаться. Вывод: должны показываться только не завершенные работы.
Мое предложение несколько поменяет вашу методику учета рабочего времени, но зато по моему проще и нагляднее.
0
5 / 5 / 6
Регистрация: 12.07.2011
Сообщений: 727
06.04.2014, 22:35  [ТС]
Работы сотрудника в список выводятся по запросу - который явялется рекордСоурсом для списка на главной форме. Если ДатаОкончанияПлан меньше текущей, то работа в список не выводится...а суть такого отчета в системе оплаты труда работников. У работника есть оклад, который он получает за то, что приходит на работу, независимо от того, сколько времени в течение месяца он был фактически занят в проектах. А вот за за то, что работник фактически был занят в проектах, производится доплата к окладу. Суть отчета - собрать общее время фактической занятости работника в течение месяца или другого периода, чтоб определить размер доплаты к окладу.Логический признак завершения задачи я вводил. Однако БД связана с SQL Server и при конвертации в формат сервера произошла интересная ошибка: аксесс не давал вводить что либо в форму, где было логическое поле. Вылетало сообщение, что пока вы изменяли запись, другой пользователь её отредактировал... а тогда пользователь только один был - я только, БД еще не эксплуатировалась и кроме меня там никого не могло быть. Я нашел описание проблемы в сети на форумах... оказалось, что проблема именно в конвертации логического поля - никогда бы сам не додумался...

Добавлено через 1 минуту
заполнение часов необходимо и если юзер поставил часы в пустую запись, то нельзя понять, куда он ввел часы, какой работе и при выгрузке фактических трудозатрат естественно часы из пустых записей не попадают никуда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2014, 22:35
Помогаю со студенческими работами здесь

Поиск записи в главной форме по записям в подчиненной
Есть основная форма и подчиненная. В основной форме введены все данные об абоненте библиотекы. В подчиненной форме фиксируется...

Навигация по выделенным записям в подчиненной форме Access
Как программно пробежаться по выделенным записям в подчиненной форме Access.

Как сделать порядковый номер к записям в подчиненной форме?
Здравствуйте. У меня есть форма (Главная_форма) с определенным оформлением, которую периодически необходимо распечатывать. В этой форме...

Подсчет количества записей в подчиненной форме из другой подчиненной формы
Форумчане, всем привет. На форме 2 подчиненной формы. При переходе по одной отображаются данные другой. Сделал кнопку...

Сумма из подчиненной формы, отмена записей в подчиненной форме
Нужна сразу помощь по четырем пунктам, форма КвитанцияСкупкиОбмена надо: 1. Суммирование поля Сумма в подчиненной форме с занесением в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru