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

Перенос результатов запроса в поля бланка


Приведу вначале текст процедуры FromRstToFields, а потом уже дам краткий комментарий, поясняющий ее работу:

Public Sub FromRstToFields() 'Перенос данных из набора записей Rst1 в поля бланка Dim curField As Range VBA.Randomize Set curField = Range("D19") 'Поле с названием организации curField = Rst1!Название curField.Offset(1) = Rst1!Адрес curField.Offset(2) = "tel: " & Rst1!Телефон & _ " Email: " & Rst1!Email curField.Offset(3) = VBA.Int(VBA.Rnd * 999999999 + 100000000) 'Заполнение полей - грузотправитель и грузополучатель Set curField = Range("E25:J25") curField = "Издательство: Родная Речь, " & Range("F9") curField.Offset(1) = Rst1!Название & ", " & Rst1!Адрес End Sub

Процедура, как и положено, коротенькая, так что текст ее самодостаточен для понимания. Значения полей записи присваиваются свойству Value объектов Range, задающих поля бланка. В последней части процедуры заполняются поля документа, задающие грузоотправителя и грузополучателя, в качестве которых выступает офис РР и выбранный заказчик книг.

На этом можно было бы закончить комментарий, если бы не необходимость привести некоторые пояснения моим читателям. Дело в том, что я проектировал бланк документа и базу данных в разное время. По этой причине есть определенная несогласованность между реквизитами заказчика, представленными на бланке и реквизитами, хранящимися в таблице "Заказчики" базы данных офиса РР. В частности в базе данных хранятся такие реквизиты, как, например, "Город", "Директор", которые не вынесены на бланк, но нет реквизита "ИНН", присутствующего на бланке. Я не стал приводить в полное соответствие формат бланка документа и базу данных, найдя в этом даже некоторую пользу для целей обучения. Примером того, что некоторые поля документа могут быть вычислимыми, в данном случае является поле "ИНН", которое я формирую случайным образом, используя функции Randomize и Rnd.

На этом закончу рассмотрение действий, выполняемых при нажатии командной кнопки "Выбрать" и перейду к рассмотрению задач, решение которых осуществляется по нажатию следующей инструментальной кнопки "Найти".



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