|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Достопочтенные форумчане - ква-ква-ква-квалифицированные колллеги! Имеется Ленточная форма frm2 на ней поля field21,field22,field23 Эта ленточная форма является подчиненной по отношению к простой форме frm1,на которой расположен combo1 являющийся критерием запроса SELECT который является рекордсоурсом для frm2. Т.е. в зависимости от того,что выбрано на combo1 - тот критерий и вставляется в запрос SELECT,следовательно на frm2 может быть от одного до нескольких записей,а может их и вообще не быть. Суть вопроса - как проверить посредством vba существует ли поле field21 или field22 например. Спрашиваю потому,что мне надо использовать значение field22,и в случае,когда записей на форме frm2 вообще нет,в строке где я пытался задать значение переменной Код: vbnet 1.
выскакивает ошибка типа "Введенное выражение не содержит значения". Проверка на "существует ли поле" мне бы помогла ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 09:51 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty, проверьте количество записей в подчинённой форме - если 0 , то контролов в области данных не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 10:16 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
4d_monster drafty, проверьте количество записей в подчинённой форме - если 0 , то контролов в области данных не будет. Не все так просто,этот вариант не пойдет... Нужен именно "озвученный" вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 10:27 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty, Так подойдёт? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 10:35 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty 4d_monster drafty, проверьте количество записей в подчинённой форме - если 0 , то контролов в области данных не будет. Не все так просто,этот вариант не пойдет... Нужен именно " озвученный " вариант Можно даже косвенным способом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 10:38 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
4d_monster drafty, Так подойдёт? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
...походу так и придется делать,но хотелось бы более "изящнее" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 11:04 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty как проверить посредством vba существует ли поле field21 или field22 например ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 11:05 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Akina drafty как проверить посредством vba существует ли поле field21 или field22 например А избежать использование блока обработчика ошибок никак нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 11:17 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Если перебирать коллекцию, то обработчик вроде как и не потребуется. Вернее, быть-то он обязан в любом случае, но именно для функции проверки наличия он не задействуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 11:49 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
если критериев немного (1-5) я формирую строку WHERE,которую использую для отбора: Код: vbnet 1. 2. 3. 4.
Можно обновлять источник после обновления любого из полей критерия отбора можно сформировать строку/открыть запрос/отчет по нажатию кнопки после выбора всех критериев отбора Private Sub my() Dim strSQL, a, b, c, d If IsNull(Me.krit1) Or Me.krit1 = "" Then 'текстовое.Если поле фпьтра krit1(под надписью ctl1-см.свойства поля> вкладка другие> имя )NULL или пустое a = Null 'тогда a имеет это значение ElseIf Me.krit1 = " непустые" Then 'если в списке выбрано " непустые" a = " and not ctl1 is null" 'тогда a имеет это значение ElseIf Me.krit1 = " пустые" Then 'если в списке выбрано " непустые" a = " and ctl1 is null" 'тогда a имеет это значение Else 'любое другое значение из списка (например "вт") a = " and ctl1='" & Me.krit1 & "'" 'тогда a=" and ctl1='вт'" End If If IsNull(Me.krit2) Or Me.krit2 = "" Then 'дата/время. Аналогично только другой синтаксис b = Null ElseIf Me.krit2 = " непустые" Then b = " and not ctl2 is null" ElseIf Me.krit2 = " пустые" Then b = " and ctl2 is null" Else b = " and ctl2=#" & Format(Me.krit2, "mm\/dd\/yyyy\#") End If If IsNull(Me.krit3) Or Me.krit3 = "" Then 'числовое. Аналогично только другой синтаксис c = Null ElseIf Me.krit3 = " непустые" Then c = " and not ctl3 is null" ElseIf Me.krit3 = " пустые" Then c = " and ctl3 is null" Else c = " and ctl3=" & Me.krit3 End If If IsNull(Me.krit4) Then d = Null Else d = " and ctl4=" & Me.krit4 'логическое.Аналогично.Синтаксис как у числового только условий два-true/false 'собираем строку SQL допустим в krit1 выбрано "d",в krit2 01.03.2016 strSQL = Mid(a & b & c & d, 6) ' "ctl1='d' and ctl2=#03/01/2016#" If IsNull(strSQL) Then 'если в фильтре (поля для ввода китериев) ничего не выбрано DoCmd.ShowAllRecords 'показать все 'задать источники строк для полейСоСписком фильтра при отображении всех записей Me.krit1.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl1 from таблица1 where not ctl1 is null group by ctl1" Me.krit2.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl2 from таблица1 where not ctl2 is null group by ctl2" Me.krit3.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl3 from таблица1 where not ctl3 is null group by ctl3" Exit Sub 'выход из процедуры Else 'иначе формируется источник строк для полейСоСписком фильтра с учетом выбранного фильтра Me.krit1.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl1 from таблица1 where " & strSQL & " and not ctl1 is null group by ctl1" Me.krit2.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl2 from таблица1 where " & strSQL & " and not ctl2 is null group by ctl2" Me.krit3.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl3 from таблица1 where " & strSQL & " and not ctl3 is null group by ctl3" DoCmd.ApplyFilter , strSQL 'применение фильтра End If End Sub Private Sub krit1_AfterUpdate() Call my 'вызов(выполнение) процедуры my при обновлении поля "krit1" End Sub Private Sub krit2_AfterUpdate() Call my 'вызов(выполнение) процедуры my при обновлении поля "krit2" End Sub Private Sub krit3_AfterUpdate() Call my 'вызов(выполнение) процедуры my при обновлении поля "krit3" End Sub Private Sub krit4_AfterUpdate() Call my 'вызов(выполнение) процедуры my при обновлении поля "krit4" End Sub Private Sub ShowAll_Click() 'кнопка "показать все" DoCmd.ShowAllRecords 'показать все Me.krit1 = Null 'очистить Me.krit2 = Null 'все Me.krit3 = Null 'поля Me.krit4 = Null 'фильтра 'задать источники строк для полейСоСписком фильтра при отображении всех записей Me.krit1.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl1 from таблица1 where not ctl1 is null group by ctl1" Me.krit2.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl2 from таблица1 where not ctl2 is null group by ctl2" Me.krit3.RowSource = "SELECT top 1 ' непустые' FROM Таблица1 UNION SELECT top 1 ' пустые' FROM Таблица1 UNION select ctl3 from таблица1 where not ctl3 is null group by ctl3" End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 12:56 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty, тут говорить не о чем. Если контролы положены на форму то они и должны быть в независимости от того какой у формы RecordSource и сколько там записей. Одно из двух или вопрос поставлен некорректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:02 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Панург, А если контрол расположен в области данных, записей у формы нет и добавление запрещено? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:09 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
4d_monster, да всё равно. Куда они денутся? Записей не будет, а контролы не испарятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:27 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Панург 4d_monster, да всё равно. Куда они денутся? Записей не будет, а контролы не испарятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 15:26 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Панург, Точно. У автора просто ошибка в вопросе. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 15:27 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Я проверил, Панунг - прав: контролы остаются. Просто свойство Value недоступно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 15:28 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
4d_monster Кривцов Анатолий, Я проверил, Панунг - прав: контролы остаются. Просто свойство Value недоступно. Так о чем договорились,придется делать с обработчиком ошибок по-любому? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 13:28 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Подпишись в бэк модуле формы "frm1" на событие "Current" интерфейса Form формы "frm2". Если записей в наборе данных "frm2" нет, события тоже нет, ничего обрабатывать более не надобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 13:52 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Predeclared Подпишись в бэк модуле формы "frm1" на событие "Current" интерфейса Form формы "frm2" . Если записей в наборе данных "frm2" нет, события тоже нет, ничего обрабатывать более не надобно. Можно кусок кода,чтобы я понял как именно надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:18 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:58 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
drafty ... Можно кусок кода,.. Можно: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 15:13 |
|
Проверка есть ли контрол на форме
|
|||
---|---|---|---|
#18+
Predeclared drafty ... Можно кусок кода,.. Можно: Круто! Очень полезный "механизм", премного благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 08:16 |
|
|
start [/forum/topic.php?fid=45&msg=39934610&tid=1610196]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 470ms |
0 / 0 |