Access 2002

Получение данных — задача простая


Получение данных — задача простая; мы берем заранее подготовленный запрос Order Details Formatted, отбираем из него данные по конкретному заказу и создаем на их основе набор записей ADO. Вас, правда, может удивить, почему мы не воспользовались набором записей подчиненной формы Order Details, включенной в форму Orders. Во-первых, в этом наборе записей больше полей, чем нам нужно, и к тому же у них сокращенные имена. Во-вторых, числовые значения в нем не форматированы как денежные суммы, хотя и выводятся в форме правильно.

После создания набора записей наша процедура вызывает пользовательскую функцию CreateTableFromRecordset (листинг 10.7). Эта очень полезная и достаточно универсальная функция создает в документе Word таблицу на основе объекта Recordset ADO. Далее процедура Pri ntlnvoiceWi thWord добавляет в таблицу строки промежуточного итога, стоимости доставки и общей суммы, форматирует данные и выравнивает абзацы с текстовыми данными по левому краю, а абзацы с числовыми данными — по правому. Все зто выполняется простыми командами.

Функция CreateTableFromRecordset работает следующим образом. Вначале она вызывает метод набора записей GetString, который возвращает его данные в виде одной строки, разделенной символами табуляции и возврата каретки. Вот почему нам нужен был объект Recordset именно из библиотеки ADO — объект DAO метода GetStri ng не имеет. Получив данные в том виде, в котором они могут быть приняты Word, мы вставляем их в документ с помощью метода InsertAfter объекта Word Range, переданного нашей функции. Этот объект указывает, где именно в документе мы хотим создать таблицу. Далее вызывается еще один метод объекта Range, ConvertToTable, преобразующий только что вставленный текст в таблицу Word.

Комментарии закрыты