Word-овский текст - в форму

Marija
Дата: 28.09.2005 10:43:17
Кто знает, как можно вставить в форму (а затем и в отчет) поле ввода текста в Word-овском виде? И можно ли такое вообще сделать? Необходимо для оформления документа (иногда нужно пункты в тексте нумеровать, иногда с абзаца писать, вставлять символы), что возможно делать в Word и не возможно в Access.
Marija
Дата: 28.09.2005 11:26:39
Ну что, никто не знает? Напишите, что это сделать невозможно. Или может можно как-то по-другому выкрутиться? Или что вопрос неправильно сформулирован...
AlexeiK (gt)
Дата: 28.09.2005 11:38:49
Word хранит данные в своем формате, к которому Access может подключиться лишь как к набору символов, и то вопрос .вот в 2005 office , то что вам нужно можно будет делать легко, там уже xml а не doc будет.
это первый вариант ответа.

вы хотитет на форме сделать поле и после ввода в него, переслать эти данные в нужное поле в документе Word?
это второй варинат ответа.
Marija
Дата: 28.09.2005 11:43:44
AlexeiK (gt)
Word хранит данные в своем формате, к которому Access может подключиться лишь как к набору символов, и то вопрос .вот в 2005 office , то что вам нужно можно будет делать легко, там уже xml а не doc будет.
это первый вариант ответа.

вы хотитет на форме сделать поле и после ввода в него, переслать эти данные в нужное поле в документе Word?
это второй варинат ответа.


Меня бы устроил и xml, главное, что мне необходимо в результате - чтобы в отчете текст выглядел красиво:
- абзацы
- нумерация пунктиков
- вставленные символы
- и т.п.

А обычное текстовое поле ввода в Access позволяет лишь вводить текст "сплошняком". Или я ошибаюсь?
Olyk
Дата: 28.09.2005 12:21:37
Выводите отчет в Ворд с помощью ВБА... там программно можно что угодно и как угодно расставить
AlexeiK(gt)
Дата: 28.09.2005 14:19:53
просто я дал два варината ответа, для того чтобы , вы сделали уточнение, чтоже вам все таки требуеться, так как для меня вопрос интерпретируеться не однозначно.

в каком отчете должно выглядеть красиво?
давайте о терминах договоримся.
отчет=отчет Access
документа=документ Word
форма=форма Access
поле = поле формы Access
так пойдет?
если , у вас код , который эту задачу должен решить, выполняеться в Aceess , тогда и правда через XPAutomation + vba код, можно управлять программой Word как хочеться(- абзацы
- нумерация пунктиков
- вставленные символы
- и т.п.)+ вставлять данные в нужные места документа.
если документации нету то поиск на ms сайте по слову xpautomation выведет вас на файл помощи, где есть все примеры, как надо делать и так далее.
Egor Sokolov
Дата: 07.10.2005 09:28:57
Всем привет! Похоже, что здесь обсуждается как раз то, что меня интересует, поэтому я решил пока не создавать новых топиков, а присоединиться к этой дискуссии :). Во избежание возможной двусмыссленности в понимании моего вопроса буду объяснять “на пальцах”. Итак, допустим, есть БД Access, в ней есть таблица, в которой есть поле типа MEMO; в той же БД есть форма, на которой размещён элемент управления Поле (Text Box). Запускаем форму, вводим текст, итп, итд… — всё это примитивно и ясно, всё это можно сделать через стандартный Конструктор Форм. К сожалению, выглядит это очень коряво и некрасиво, т.к. текст неформатированный. Хотим красивостей? — ноу проблемос! — вставляем вместо элемента управления Поле элемент управления RichTextBox и… обламываемся, т.к. в обычном Office его нет (во всяком случае в Of-2000, а как в более поздних — не знаю, слышал что-то про “Ref Edit Control” в Of-XP, но меня интересует именно про Of-2000), а есть он только в Office Developer Edition, которого нет у нас :(. Отсюда вопрос: как сделать так, чтобы вот вместо этого RichTextBox`a внедрить в форму окно MS Word (ясно, что тут подразумевается, что Word установлен на компе), т.е. не открыть его как отдельное приложение, а чтобы он сидел внутри формы как элемент управления, соотв-но можно потом будет динамически создать через VBA менюшки, команды итп для этого окна Word`a. Набиваем текст, имея все эти всевозможные абзацы, нумерации пунктиков, вставленные символы и т.п., столь милые сердцу Marija (см пост выше) и моему тоже ;). А сам текст при этом сохраняется в поле MEMO (насколько я понимаю, RichTextBox ведь тоже хранит данные в MEMO), для простоты будем считать, что картинок в тексте нет. Вот примерно в таком ракурсе. Кстати, я полагаю, что Marija имела в виду именно это… Короче: как это сделать!? Если лень объяснять, то дайте хотя бы ссылку, где об этом можно подробно почитать, я перерыл кучу книжек, сайтов, но нигде про это ничего нет.
AlexeiK(gt)
Дата: 07.10.2005 09:47:06
чтобы изменять вид текста, нужно вместе с ним хранить дополнительную информацию о всяких абзацах.и тд. даже я думаю, надо специальную схему хранения.а вы хотите хранить в обычном поле, а через что-то похожее на rich text box,превращать его в то , что вам надо.
можно вопрос, а у документа сколько символов предпологаеться хранить?насколько они большие по объему будут?
просто легче, хранить отдельные документы в формате word и держать ссылки на них в базе данных.вы по памяти можете вспомнить, хоть одну программу , которая так делает как вы хотите? чтобы и база данных и форматированный текст(со сложным форматированием как вас понял) в одном флаконе?
Egor Sokolov
Дата: 08.10.2005 03:34:55
to: AlexeiK(gt) Спасибо, что откликнулись! Нет, никакой «специальной схемы хранения» тут не надо. Насколько я это себе представляю, RTF-формат это просто разметка определёнными тэгами наподобие HTML (это, наверно, не совсем корректное сравнение, просто HTML я знаю довольно хорошо, а вот RTF-разметку совершенно не представляю, но это просто аналогия: подобно тому как браузер превращает HTML в определённое форматирование, так, видимо, и RTF-редакторы превращают RTF-разметку в отступы, маркеры итп. Но ничто не мешает открыть тот же HTML-файл в Блокноте и увидеть его со всей разметкой, в конце концов это просто чистый текстовый файл). Поэтому вот этот «сырой» RTF можно просто хранить в Access в поле типа MEMO. Соотв-но размер этого RTF будет зависеть от max ёмкости поля MEMO; в Access 2000 оно = что-то около 65 000 символов (в Справке Access указано "до 64 000 символов", в других источниках - до 65 535) т.е. около 64 килобайт. Это что касаемо ёмкости. Теперь про то, как «загнать» этот «сырой» RTF в MEMO — как правило, для этого на форму Access помещают ActiveX RichTextBox. Вот небольшая цитата из одного руководства: {The RichTextBox ActiveX control supplied with Microsoft Office 97, Developer Edition has a ControlSource property which can be used to directly bind its contents to a field in the form's record source. <…> As you enter text in a RichTextBox ActiveX control, the formatting and the text you enter is stored in the control's TextRTF property. This information is stored in Rich Text Format (RTF). Using Visual Basic for Applications, you can store the contents of the TextRTF property in a Memo field in the underlying table.} — затем RichTextBox выполняет обратную операцию: визуализирует в форме «сырой» RTF из поля MEMO в привычный пользователю вид. Но я повторяю ещё раз: нет в Of-2000 этого RichTextBoxё`a, ну нет его :( Но ведь есть Word! Но я никак не могу понять, как открыть его ВНУТРИ формы, т.е. чтобы визуально это выглядело наподобие RichTextBox`a, но реально это был бы Word. Так, теперь о упомянутых Вами ссылках на внешние файлы. Можно, конечно, можно так делать, и я подозреваю, что так чаще и делают, но я так делать не хочу, потому что не люблю, когда информация раскидана там-сям по файловой системе. Базы данных в конце концов для того и сделаны, чтобы всё это собрать воедино, вот. А во-вторых (и это даже важнее): тут главное не в том, где хранить информацию — во внешних ли файлах, или в MEMO (просто хранить в MEMO я считаю более, так сказать, методологически правильным), — а в том, чтобы отобразить её на форме Access в форматированном виде, интегрировав туда Word (и ещё раз: не в отдельном окне Word, как в отдельной программе, а чтобы Word сидел внутри формы). Т.е. да, Вы совершенно правильно заметили: и база данных и форматированный текст будут храниться «в одном флаконе» (картинок в тексте не будет). И наконец, о программах, которые так делают. Да, такие проги есть. Вот например «Multi Doc» (_http://c-slang.nm.ru). Её краткое описание (с сайта) {Программа для создания и хранения RTF-документов в таблице базы данных. Выполнена в виде Explorer-подобного окна. В левой части - список документов в виде дерева, в правой - текущий документ. Редактор RTF реализован на основе компонента TrichView (_http://www.trichview.com). В качестве хранилища данных может быть использован Access 97/2000, либо MS SQL Server 7.0/2000} Сама прога бесплатная (только вот SQL Server далеко, далеко не бесплатный, хе-хе…) Подробнее можно посмотреть на их сайте. От себя скажу только, что RTF-формат она хранит в полях Memo (для Access) или Image (для SQL Server), соотв-но в последнем случае ёмкость поля Image = около 2 гигабайт (могу и ошибаться, т.к. с SQL Server я знаком очень-очень слабо, но во всяком случае, там ёмкость превышает все мыслимые пределы для повседневного пользования).
Zalagaev
Дата: 17.01.2007 15:49:02
Господа,

что-то не очень ясно на нашем форуме по вопросу встраивания вордовского окошка в форму акса.... Кто-нибудь что-либо подобное видел?

ЗДВ.