Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Access -> Word Добавлено: 15.03.04 08:38  

Автор вопроса:  MaximusX

Значит мне нужно программно из Access'а  в Word'е вывести некоторую "динамическую" информацию, причем часть должна быть одним шрифтом, часть другим, кое-что должно быть выравненно, т.е. все по-разному. Создаю я значит Word'овский объект, новый документ, ставлю размер шрифта через docWrd.Content.Font.size (docWrd - имеет тип Word.Document), вывожу, но если поменять снова размер, то он поменяет у всего документа  , а хотелось бы чтобы только у нужного.

Буду признателен если подскажите как надо на самом деле; лучший вариант, если найдется добрейшей души человек, который даст ссылочку на инфу по этой области

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам