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

Доступ к элементу управления "Флажок" зависимый от значения полей

01.04.2013, 07:49. Показов 1763. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как реализовать такую штуку: Имеем 5 полей, три из которых обязательны для заполнения, допустим назовем их [Исполнитель(поле со списком)], [Оборудование (поле со списком)],[Срок выполнения(в днях, просто число)] и затем идет флажок "В производство". Задача: При выборе какой-то из строк флажком, контролировать чтобы пользователь заполнил все обязательные поля. При ошибке выдается информационное сообщение" Вы не заполнили поле такое-то, допустим "Оборудование".
Реализация через функцию "Обязательное поле" в конструкторе таблиц не приносит желаемого результата
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.04.2013, 07:49
Ответы с готовыми решениями:

Доступ к элементу управления через индекс
Есть несколько элементов управления button, которые названы: button0 button1 button2 button3 Возможно ли обратится к ним через...

Как получить доступ к элементу управления
Собственно вопрос, есть вот такая разметка <WrapPanel Margin="45,194,49,257"> <ItemsControl...

Доступ к элементу управления шаблона страницы
Добрый день! Каким образом можно получить доступ из дочерней страницы к элементу управления, находящемуся на шаблоне страницы? ...

11
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
01.04.2013, 08:20
В событии формы До обновления проверяете, если "В производство" истинно, то последовательно проверяете на IsNull все нужные поля с выдачей сообщений, если они пустые.
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
01.04.2013, 10:37  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
В событии формы До обновления проверяете, если "В производство" истинно, то последовательно проверяете на IsNull все нужные поля с выдачей сообщений, если они пустые.
Был бы очень признателен за пример в коде, т.к. делаю иногда элементарные ошибки, поэтому не работает и сижу мучаюсь, вы предлагаете так?
PureBasic
1
2
3
4
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.В производство = True Then Me.Оборудование IsNotNull  
Else 
MsgBox "Не выбрано обрудование!", 0, " Внимание! "
А как правильно указать в коде, что необходимо проверить на услове несколько полей? Для каждого прописывать процедуру проверки If ......Then или их как то в одной строrе последовательно указать можно?

Если ЗНАЧЕНИЕ F = Истина ТО Поле; Поле 2; Поле 3; не должно быть пустым, Иначе СООБЩЕНИЕ (извиняюсь за примитивизм)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
01.04.2013, 10:44
Цитата Сообщение от Braser Посмотреть сообщение
А как правильно указать в коде, что необходимо проверить на услове несколько полей?
Например, если на присутствие Null, то можно так:
Visual Basic
1
2
3
4
if len(me.поле1 + me.поле2 + me.поле3 + me.поле4) = 0 then
msgbox "заполнены не все поля!"
cancel = true
end if
1
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
01.04.2013, 10:56
Если проверять и выводить сообщения по каждому полю отдельно, то
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.В_производство Then
        If IsNotNull(Me.Оборудование) Then
            Call MsgBox("Не выбрано обрудование." _
                   & vbCr & "Введите его." _
                , vbOKOnly + vbExclamation, Me.Caption)
            Cancel = True
        End If
        
        
    End If
End Sub
If'ы внутри должны быть по каждому полю.
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
01.04.2013, 11:15  [ТС]
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.В_производство Then
        If IsNull(Me.Оборудование) Then
            Call MsgBox("Не указано оборудование,." _
                   & vbCr & "выберите из списка ." _
                , vbOKOnly + vbExclamation, Me.Caption)
            Cancel = True
        End If
        If Me.В_производство Then
        If IsNull(Me.Исполнитель) Then
            Call MsgBox("Не выбран исполнитель." _
                   & vbCr & "выберите из списка." _
                , vbOKOnly + vbExclamation, Me.Caption)
            Cancel = True
        End If
      End If
     End If
    End Sub
В таком виде заработал, большое спасибо
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
01.04.2013, 11:24
А зачем еще одна проверка - "9 If Me.В_производство Then" внутри такой же?
Без неё что-то не работало?
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
01.04.2013, 12:00  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
А зачем еще одна проверка - "9 If Me.В_производство Then" внутри такой же?
Без неё что-то не работало?
Пробовал убирать, выскакивает отладчик и пишет : " Blok If without End If "
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
01.04.2013, 12:10
Уберите строки 9 и 16.
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
01.04.2013, 12:13  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.В_производство Then
        If IsNull(Me.Оборудование) Then
            Call MsgBox("Не указано оборудование,." _
                   & vbCr & "выберите из списка ." _
                , vbOKOnly + vbExclamation, Me.Caption)
            Cancel = True
        End If
      If IsNull(Me.Исполнитель) Then
            Call MsgBox("Не выбран исполнитель." _
                   & vbCr & "выберите из списка." _
                , vbOKOnly + vbExclamation, Me.Caption)
            Cancel = True
        End If
     End If
    End Sub
Извиняюсь не сразу понял, вот так переделал
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
01.04.2013, 12:21
Да, так должно работать.
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
02.04.2013, 02:30
Ну и последний штрих, если полей на форме много, то
Visual Basic
1
2
3
4
5
6
7
For Each ctl In Forms("МояФорма").Controls
      If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
      If Len(ctl.Value & "") = 0 Then
      MsgBox ctl.Name & " не заполнено!"
      End If
      End If   
Next
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2013, 02:30
Помогаю со студенческими работами здесь

Доступ к элементу управления и BGW потока
Здарвствуйте. Такая проблема - есть контрол на форме, есть поток - неужели нельзя из этого потока получить доступ к контролу. ...

Доступ к элементу управления не из основного потока
Подскажите как решить такую проблему: в моей программе есть ListBox, который, естественно, создан в главном потоке, и мне необходимо его...

WPF: Доступ к элементу управления не из класса формы
Добрый день! Подскажите, пожалуйста новичку в WPF! Есть форма: xmlns:s="clr-namespace:MyApp" <Grid> ...

Как получить доступ к элементу управления вне UserControl-а
Всем привет! Создал контрол добавления информации. Теперь хочу после добавления обновить GridView который находится на странице. Не...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru