Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Очистка формы
 
 автор: DVS   (11.10.2006 в 12:32)   личное сообщение
 
 

Всем добрый день!
Прошу помочь в следующей проблеме!
На форме расположены поля, надписи, поля со списками. Необходимо при нажатии кнопки очистить все поля и поля со списками. Мне думается, что это можно сделать так - перебираем все обьекты на форме и у тех у которых есть свойство Value, присваиваем ему Null. Но вот как это реализовать, что-то не пойму. Может кто знает?
Спасибо!

  Ответить  
 
 автор: osmor   (11.10.2006 в 12:54)   личное сообщение
 
 

а поля и поля со списком - свободные? или имеют источник данных?

  Ответить  
 
 автор: georgelisovsky   (11.10.2006 в 13:02)   личное сообщение
 
 

Если извесны идентификаторы полей, то линейно
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
Написал бы больше, да клава какая-то глючная...

  Ответить  
 
 автор: osmor   (11.10.2006 в 13:14)   личное сообщение
 
 

поправочка
свойство 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

  Ответить  
 
 автор: georgelisovsky   (11.10.2006 в 13:18)   личное сообщение
 
 

Так и знал, что будут поправки:)

  Ответить  
 
 автор: dvs   (11.10.2006 в 15:05)   личное сообщение
 
 

Спасибо! То что нужно.

  Ответить  
 
 автор: Irena   (11.10.2006 в 16:21)
 
 

У меня была (несвязанная) форма для расширенного поиска, и для очистки всех полей (которых много) форма просто тупо закрывалась-открывалась. Попробовала Ваш способ - все хорошо, кроме ComboBox'a, который не желает принимать значение ни "", ни Null, притом что никаких условий на значение там вроде бы нет... Run-time error, невозможно присвоить значение объекту. Что бы это значило?

  Ответить  
 
 автор: Irena   (11.10.2006 в 16:59)
 
 

Вопрос снят! Заодно в ходе расследования было выявлено и уничтожено некое фантомное поле, прятавшееся под вкладками.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList