Мир объектов Excel 2000


Чистка полей таблицы заказа


Рассмотрим действие еще одной командной кнопки - "Очистить заказ". Выше, в разделе "Работа с заказом", я говорил, что последнее слово всегда остается за пользователем, и он может вручную редактировать таблицу заказов. В какой - то момент может оказаться, что он хотел бы прекратить работу с заказом, без сохранения его в базе данных. Конечно, для перехода к созданию нового заказа можно в любой момент нажать кнопку "Сформировать заказ", но, вполне естественно, предварительно нажать кнопку "Очистить заказ", чтобы очистить поля бланка. Приведу код соответствующего обработчика события:

Private Sub ClearOrder_Click() 'Чистка полей заказа ClearBookFields End Sub

Процедура ClearBookFields, которая выполняет работу по чистке полей, уже вызывалась в другом месте программного проекта. Теперь пришла пора привести ее код:

Public Sub ClearBookFields() 'Чистка полей документа Dim curField As Range Set curField = Range("A34:G45") curField.ClearContents Set curField = Range("I34:I45") curField.ClearContents

'Установить свойства элементов управления With ThisWorkbook.Worksheets(1).OLEObjects .Item("LabelNDS").Visible = False .Item("NDS").Visible = False .Item("SaveOrder").Object.Enabled = False End With

End Sub

Помимо чистки полей в процедуре делаются невидимыми уже упоминавшиеся OLE-объекты, а главное, выключается командная кнопка "Сохранить заказ". Это и понятно, - раз поля таблицы заказа пусты, - запись в базу данных должна быть запрещена, пока не будет сформирован новый заказ.

Обратите внимание на один чисто программистский аспект работы этой процедуры, связанный с OLE-объектами. Свойство Visible доступно для всех элементов коллекции OLEObjects. Но чтобы добраться до свойства Enabled, мне предварительно нужно вызвать свойство Object, и только потом у полученного объекта можно установить значение свойства Enabled.

На этом я заканчиваю рассмотрение интерактивности, добавляемой в раздел заказов нашего документа.



Содержание раздела