|
|
|
| Всем добрый день!
Прошу помочь в следующей проблеме!
На форме расположены поля, надписи, поля со списками. Необходимо при нажатии кнопки очистить все поля и поля со списками. Мне думается, что это можно сделать так - перебираем все обьекты на форме и у тех у которых есть свойство Value, присваиваем ему Null. Но вот как это реализовать, что-то не пойму. Может кто знает?
Спасибо! | |
|
| |
|
|
|
| а поля и поля со списком - свободные? или имеют источник данных? | |
|
| |
|
|
|
| Если извесны идентификаторы полей, то линейно
Sub Кнопка_Click()
Поле1.SetFocus
Поле1.Text=""
и т.д.
End Sub
Если - не известны или влом писать линейный алгоритм, то перебираем Control-ы
Sub Кнопка_Click()
Dim Ctrl
For Each Ctrl in Me.Controls
Ctrl.SetFocus
Ctrl.Text=""
Next
End Sub
Написал бы больше, да клава какая-то глючная... | |
|
| |
|
|
|
| поправочка
свойство text - есть не у всех контролов
SetFocus делать не обязательно
dim ctl as control
dim frm as form
set frm = me
For Each ctl in frm.Controls
With ctl
Select Case .ControlType
Case acTextBox
.value = "" 'или .value = Null (если позволяют условия на значение
Case acListBox
.value = "" 'или .value = Null (если позволяют условия на значение
Case acComboBox
.value = "" 'или .value = Null (если позволяют условия на значение
End Select
End With
Next ctl | |
|
| |
|
|
|
| Так и знал, что будут поправки:) | |
|
| |
|
|
|
| Спасибо! То что нужно. | |
|
| |
|
автор: Irena (11.10.2006 в 16:21) |
|
| У меня была (несвязанная) форма для расширенного поиска, и для очистки всех полей (которых много) форма просто тупо закрывалась-открывалась. Попробовала Ваш способ - все хорошо, кроме ComboBox'a, который не желает принимать значение ни "", ни Null, притом что никаких условий на значение там вроде бы нет... Run-time error, невозможно присвоить значение объекту. Что бы это значило? | |
|
| |
|
автор: Irena (11.10.2006 в 16:59) |
|
| Вопрос снят! Заодно в ходе расследования было выявлено и уничтожено некое фантомное поле, прятавшееся под вкладками. | |
|
| |