|
30 Кб. |
|
| Возникла утром идея, мать ее...
В базе имеется Объект и подчиненный к нему Подобъект, но также объект может и не иметь подчиненого объекта.
Вот что я придумал, поставить флажок около объекта, если у него нет подчиненного объекта, то и ладно, а если есть открывается подчиненная форма куда можно вписать так скажем данные.
И вроде все получилось, только есть одна загвоздка, пока на флажок не нажмешь ничего не работает =( блин я даже не знаю как объяснить, мозг кипит....
Откройте форму и не трогайте флажок полистайте записи и поймете... -) | |
|
| |
|
|
|
| событие "Текущая запись" - проверка флага и задание на этом свойство Visible пдчиненной форме.
Private Sub Form_Current()
If Me.lfelse = True Then
Me.podobekt.Visible = True
Else
Me.podobekt.Visible = False
End If
End Sub
|
че за название LFELSE
п.с. кипит наш разум возмущенный | |
|
| |
|
|
|
| =) спасибо большое =) уф, прям груз с плеч =) рад, мона и пива попить =) | |
|
| |
|
|
|
| галочка - есть/нет - лишние поле на форме.
т.к. - какая нибудь юзера нажмет лишний раз и при наличии записей получим отсутсвие оных (формы не будет), а делаем соответсвующую кнопку - добавить Подобъект - которая делается видимой только при отсутсвии записей в подчиненной табле - и программно меняем ее значение.
можно вообще без этого поля.
проверку устраиваем на наличие записей в рекодсете и делаем Visible соответственно. | |
|
| |
|
|
|
| Ну это не утвержденный вариант, просто ищу пути решения =)
т.к. - какая нибудь юзера нажмет лишний раз и при наличии записей получим отсутсвие оных (формы не будет)
|
это я тоже об этом подумал!
а делаем соответсвующую кнопку - добавить Подобъект
|
Это вариант, только - которая делается видимой только при отсутсвии записей в подчиненной табле - и программно меняем ее значение
|
блин, вот это даже не знаю как сделать =(
Примерно представляю, но мозг не соображает как все это написать в VBA | |
|
| |
|
|
|
| программно - это про поле типа Флаг. сорь. несколько раз перестраивал ответ гоняя туда сюда текст. | |
|
| |
|
|
|
| бррр, я так понял, кнопка "добавить подчиненный объект" видна если в подчиненной таблице нет записей, и не видна если наоборот. Вот не могу сообразить как это реализовать...
На вскидку Флаг=да, есть подчинение
кнопка не видна, флаг не виден, таблица видна
Флаг = нет
Кнопка видна, таблица не видна... | |
|
| |
|
|
|
| у тебя есть поле флаг - анализируя его (при каких либо событиях формы, объектов формы, даже других форм) можно скрывать и не скрывать объекты (вообще выполнять какие-либо действия)
у кнопки есть тоже св-во Visible - оно есть у каждого объекта на форме!!!
Ме.Объект_формы.Visible - True/False | |
|
| |
|
18 Кб. |
|
|
можно вообще без этого поля.
|
Я бы сказал даже нужно
Запросом или Dcount проверять наличие записей в таблице ПодОбъект соответствующих текущему объекту.
см. базу | |
|
| |
|
|
|
| Можно у самой подчиненной формы спросить, есть ли в ней строки:
'Модуль подчиненной формы:
Public Function HaveRows() As Boolean
HaveRows = Me.RecordsetClone.RecordCount > 0
End Function
|
И спрятать/показать ее контейнер:
'В модуле главной формы
Private Sub Form_Current()
Call ShowHide(Me.podobekt.Form.HaveRows())
End Sub
Private Sub cmdpodobekt_Click()
Call ShowHide(True)
End Sub
Private Sub ShowHide(blnCheck As Boolean)
With Me.podobekt
.Visible = blnCheck
If blnCheck Then .SetFocus
End With
Me.cmdpodobekt.Enabled = Not blnCheck
End Sub
|
Нет необходимости указывать имя таблицы, поля, то есть присутствует некая универсальность. | |
|
| |
|
|
|
| Буду разбираться и пробывать! спасибо =) | |
|
| |