powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обязательное заполнение подчиненной формы
4 сообщений из 4, страница 1 из 1
Обязательное заполнение подчиненной формы
    #32445027
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть главная форма, есть подчинная. Пользователь может заполнить только главную форму и выйти, как не дать выйти из формы пока он не заполнил подчинную?
...
Рейтинг: 0 / 0
Обязательное заполнение подчиненной формы
    #32445176
Allll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В событии Form_Unload главной формы проверить заполнение полей в субформе. Если не заполнены, то отменить закрывание формы.

Private Sub Form_Unload(Cancel As Integer)
If Поля_в_субформе_заполнены = False Then
MsgBox "Нельзя закрыть форму, пока не заполнены поля субформы."
Cancel = True ' отменить закрывание формы
End If
End Sub
...
Рейтинг: 0 / 0
Обязательное заполнение подчиненной формы
    #32445278
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как реализовать "Поля_в_субформе_заполнены"?
...
Рейтинг: 0 / 0
Обязательное заполнение подчиненной формы
    #32445369
Allll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо Поля_в_субформе_заполнены написать вызов функции из субформы

Me.Имя_субформы.Form.IsEmpty

В субформе создайте public-функцию:

Public Function IsEmpty() As Boolean
Dim fld As Control
For Each fld In Me.Controls
' пробежать по всем элементам в субформе
With fld
Select Case .ControlType
' проверять поля и поля со списками
Case acTextBox, acComboBox
IsEmpty = Nz(.Value, Empty) = Empty
End Select
End With
If IsEmpty = True then Exit Do
Next

End Function

Субформа может быть в разных режимах.
Если субформа в режиме формы, то программа обработки будет такой, как показано.
А если в режиме таблицы, то нужно проверять не значения в полях ввода, а значения в таблице, к которой подключена эта форма.

Dim rst As Recordset
Set rst = Me.RecordsetClone

' можно проверять режим формы - Me.CurrentView
With rst
Do While Not .EOF ' пройтись по всем записям
' проверка полей
.MoveNext
Loop
.Close
End With
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обязательное заполнение подчиненной формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]