Страница: 1 |
|
Вопрос: Access -> Word
|
Добавлено: 15.03.04 08:38
|
|
Автор вопроса: MaximusX
|
Значит мне нужно программно из Access'а в Word'е вывести некоторую "динамическую" информацию, причем часть должна быть одним шрифтом, часть другим, кое-что должно быть выравненно, т.е. все по-разному. Создаю я значит Word'овский объект, новый документ, ставлю размер шрифта через docWrd.Content.Font.size (docWrd - имеет тип Word.Document), вывожу, но если поменять снова размер, то он поменяет у всего документа , а хотелось бы чтобы только у нужного. Буду признателен если подскажите как надо на самом деле; лучший вариант, если найдется добрейшей души человек, который даст ссылочку на инфу по этой области
Ответить
|
Номер ответа: 1 Автор ответа: OAN
Вопросов: 2 Ответов: 17
|
Профиль | | #1
|
Добавлено: 15.03.04 18:20
|
Я делал с MailMerge так: 1.создай запрос ACCESS, возвращающий запись(записи) 2. Выгружай данные командой DoCmd.TransferText acExportMerge, , "запрос","rpt2txt", True, , 1200
2. создай шаблон Ворда (.DOT), в него вставь источником строк для слияния (меню Ворда Сервис-Слияние) полученный файл, поставь поля из источника где надо, добавь свой постоянный текст, и оформляй шрифты, разметку и т.п. по своему усмотрению как в обычном документе. 3. сохрани документ шаблоном Ворда Использование в программе: 1. выгружаешь данные описанной коммандой, 2. запускаешь Ворд - Set appWord = CreateObject("Word.Application") 3. открываешь в нем шаблон - appWord.Documents.Open("имя шаблона") 4. выполняешь слияние в новый документ командой appWord.ActiveDocument.MailMerge.Execute
Ответить
|
Номер ответа: 2 Автор ответа: MaximusX
Вопросов: 5 Ответов: 19
|
Профиль | | #2
|
Добавлено: 16.03.04 05:04
|
Ну в принципе понятно, но че-то длинно все слишком и к тому же нужно дополнительно файл хранить с шаблоном, способ хороший, но все-таки хотелось бы напрямую (командами). Вывести то нужно, скажем, слово "мама" 12 шрифтом и слово "папа" 14 шрифтом + оно выравнено по середине страницы.
Ответить
|
Номер ответа: 3 Автор ответа: OAN
Вопросов: 2 Ответов: 17
|
Профиль | | #3
|
Добавлено: 16.03.04 09:59
|
Можно без промежуточного файла - источником строк слияния подставь сам запрос прямо из .mdb. Я текстовик использовал для явного указания результирующей кодировки при перекидки данных из SQL-сервера. Другого удобного и быстрого способа использовать Ворд как печатную форму я не нашел. Все остальные варианты требуют: (собственного програмирования) + (Акцесс)* (Ворд как DDE сервер) = (жуткое слайд шоу). Для оформления куска текста Ворда используй свойства объекта Range. Например, шрифт 2-го слова 11 абзаца текущего документа поставить 14 размером: ActiveDocument.Paragraphs(11).Range.Words(2).Font.Size=14 Но опять-же, тебе надо сначала найти эти куски (уже представил себе набор циклов с условиями?), а затем применять к нему оформление или вставлять нужный текст. Зачем изобретать велосипед? Команда Ворда MailMerge.Execute делает это за секунду.
Ответить
|
Номер ответа: 4 Автор ответа: OAN
Вопросов: 2 Ответов: 17
|
Профиль | | #4
|
Добавлено: 16.03.04 10:54
|
Опс, спросоня не на то ответил. Про дополительный файл с шаблоном - ну дак все равно где-то же надо хранить информацию о тексте, разметке, размерах и т.п? Не хошь чтобы лежало все отдельно - положи шаблон в базу .mdb в поле МЕМО.
Ответить
|
Номер ответа: 5 Автор ответа: MaximusX
Вопросов: 5 Ответов: 19
|
Профиль | | #5
|
Добавлено: 17.03.04 05:09
|
Странно все как-то. Я то думал, что будет по-другому. В Word'е же если выбрать какой-то шрифт, то будешь им печатать, до тех пор пока не выберешь другой, т.е. похоже вроде струкура у Word'а внутрях, должна быть похожа на html. Соотвественно и команды должны быть что-то типа такого, а не обращение к конкретному слову и установление для него свойств. Конечно подойдет и этот вариант, но я разочарован ...
Ответить
|
Номер ответа: 6 Автор ответа: OAN
Вопросов: 2 Ответов: 17
|
Профиль | | #6
|
Добавлено: 17.03.04 10:20
|
>>струкура у Word'а внутрях сохрани файл как .rtf и посмотри, например в FAR'е, чего там внутри лежит. Но, я с самого начала не пойму, что именно должна делать прога? Зачем писать программу создающую документ, когда его, можно просто набрать в Ворде? А еще можно сделать отчет в Акцессе с подстановкой данных из запроса, а потом этот отчет просто выворачивать в Ворд как .rtf.
Ответить
|
Страница: 1 |
Поиск по форуму