powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Word -Access
21 сообщений из 21, страница 1 из 1
Word -Access
    #32475811
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, я понимаю, что уже пятница и конец рабочего дня, но, кто ещё не похватал чемоданы:

В коде аксесс создан вордовский документ, ну бланк ... там... табличка и т.п. Как можно его сохранить не в виде отдельного файла, а чтобы он добавился в конец как бы общего файла, где должны собираться в кучу подобные документы.
...
Рейтинг: 0 / 0
Word -Access
    #32475827
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы он добавился в конец как бы общего файла, где должны собираться в кучу подобные документы

давайте теперь будем делать из ворда хранилище данных, затем придумаем язык запросов по ему...

на кой это нужно?

понятно если первичный документ может иметь оригинальную подпись и печать
- его надо держать в архиве

а зачем держать кучу вордовских файлов если их можно сгенерить в любой момент времени?
...
Рейтинг: 0 / 0
Word -Access
    #32475852
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не нужно по нему никаких запросов. Просто не мной заведён порядок, согласно которому электронные копии документов, которые уходят на сторону (письма, факсы и т.п.) сваливаются в вордовские файлы. Обращаются к ним редко, но бывает. А менять что-то здесь, ну может и можно, только до того их надо дотянуть, а это пока тяжко.
...
Рейтинг: 0 / 0
Word -Access
    #32475908
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если тебе нужно писать в общий файл - ну и пиши в общий файл, а не создавай новый. в чем проблема то?
...
Рейтинг: 0 / 0
Word -Access
    #32475927
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

Билин ... надо подумать однако. Спасибо
...
Рейтинг: 0 / 0
Word -Access
    #32475957
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо подумать
это всегда полезно :))
...
Рейтинг: 0 / 0
Word -Access
    #32476001
задача такого рода домохозяйками решается абычна так:

1. Запущается регистратор макросов Ворда.
2. Производится выделение "Всего в текущем документе ворде"
2.а. Копируется в буфер.
3. Открывается "Архив"
4. Переходится в архиве Ctr+End
5. Вставляется буфер.
6. Останавливается макрорегистрация. Код правится (с учетом открытия OLE из Акса, и изменения адресации) и вставляется в модуль акса.

:0)

Да, специяльно проверил случай вставки файла:

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Макрос1()
    Selection.EndKey Unit:=wdStory
    Selection.TypeParagraph
    Selection.InsertFile FileName:= "Workflow.doc" , Range:="", _
        ConfirmConversions:=False, Link:=False, Attachment:=False
End Sub

т.е. у Вас, в "текущем" документе надо перейти "вперед" , и вставить из файла "Архив".
...
Рейтинг: 0 / 0
Word -Access
    #32476010
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Макрорегистратор


Билин вторично. Ну до чего же вумные нынче домохозяйки. Спасибо.
...
Рейтинг: 0 / 0
Word -Access
    #32476055
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Затирать аппликацией буфер - дурной тон. Вот более деликатный способ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub TryWrite(s As String)

Dim w As Word.Application, d As Word.Document, p As Word.Paragraph

Set w = CreateObject( "Word.Application" )
w.Documents.Open  "c:\oldd\try.doc" , , False
Set d = w.ActiveDocument
Set p = d.Paragraphs.Add
p.Range.Text = s & vbCrLf
d.Close
Set d = Nothing
Set w = Nothing

End Sub

Прошу обратить внимание, что я раньше никогда в жизни в Word не писал.
...
Рейтинг: 0 / 0
Word -Access
    #32476064
.InsertFile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саныч, ну епрст!

там же специяльно без усякого буфера пример приведен. После усяких рассуждалок про домокозявок, и что бы они поделали. Вот там-то метод поюзан .InsertFile, который никакого буфера не дергаит.
...
Рейтинг: 0 / 0
Word -Access
    #32476074
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сорри, не понял. А где там передается текст для вставки?
...
Рейтинг: 0 / 0
Word -Access
    #32476082
.InsertFile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Selection.InsertFile FileName:="Workflow.doc", Range:="", _
ConfirmConversions:=False, Link:=False, Attachment:=False

вставляет весь файл Workflow.doc в текущий документ. (можно воткнуть и как сылку или вложение).
...
Рейтинг: 0 / 0
Word -Access
    #32476090
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Оно втыкает файл в файл??? И зачем это? Постановка вопроса была - текст в программе и его надо добавить в конец существующего файла.

Можно, конечно, сначала сохранить в отдельный файл, потому что мы это умеем. Напоминает анекдот про математика, чайник, воду и газ.
...
Рейтинг: 0 / 0
Word -Access
    #32476101
InsertFile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
читаем дальше:
авторт.е. у Вас, в "текущем" документе надо перейти "вперед" , и вставить из файла "Архив".
- т.е. никто не мешает после этого сохранить текущий документ как "Архив". Про сохранение "активного" документа ничего не говорится.


- мне почему-то наше общение напоминает не менее известную топологическую задачку про 2 кондома и 3 потенциально опасных контакта. (Вы проходите мимо именно такого решения).


А если быть точным, то и ваше решение не работает в _буквальном_ смысле. Т.к. ворд (как и есвель) _переписывает_ файл, а не _дописывает_ в него. Т.ч. для _дописывания_ придется извращаться с прямой записью в файл. А как при этом сохранить его (вордовую) структуру?
...
Рейтинг: 0 / 0
Word -Access
    #32476107
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сравниваем два решения.

1. Написать в существующий файл.

2. Написать в новый файл (столько же затрат, как в варианте 1, только плюс забота об уникальном имени, чтобы юзеры друг другу не мешали), перенести в существующий, стереть новый.

Какое короче?

А про 2 кондома не понял. Задачку вроде знаю, но не понимаю, в чем аналогия.
...
Рейтинг: 0 / 0
Word -Access
    #32476132
SaveAs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
читаем внимательно:
авторА если быть точным, то и ваше решение не работает в _буквальном_ смысле. Т.к. ворд (как и есвель) _переписывает_ файл, а не _дописывает_ в него. Т.ч. для _дописывания_ придется извращаться с прямой записью в файл. А как при этом сохранить его (вордовую) структуру?

т.е. как это мы "пишем в существующий файл"???

-то то и оно, что на низком уровне мы ни куя ни в какой существующий ни куя не пишем.
и что тогда сравнивать?

читаем внимательно:
автори вставить из файла "Архив".
...
сохранить текущий документ как "Архив".


Вы, Саныч, пропускаете момент выворачивания кондома :0).

В конце "разных сравниваемых решений" будет сохранение. Ни о каких уникальных именах заботится не надо. (АктивДок.SaveAs "Архив"... сработает так же как Архив.Save, за стирание старого отвечает параметр команды .SaveAs). Чисто технически (на уровне отработки саомго ворда) это одно и то же - создание нового файла и удаление старого (что легко обнаруживается в новеле, или программами восстановления). О чем и говориться выше.

(Правда, если в "Архиве есть свои шаблоны/стили/макросы, то тады еще надо посмотреть, возможно вставка файла в другой не подтянет каких -то его компонентов в результат, и Ваше решение будет предпочтительнее.)


Вот только юзеры в сети и так и эдак будут конфликтовать. Поскольку если после вызова "Архива" они оба его изменят и попытаются сохранить - одному из них будет нещщастье.
...
Рейтинг: 0 / 0
Word -Access
    #32476138
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторВот только юзеры в сети и так и эдак будут конфликтовать. Поскольку если после вызова "Архива" они оба его изменят и попытаются сохранить - одному из них будет нещщастье.
Это во-первых. То есть в моем варианте этого нет. У меня нет промежуточного файла.

авторто то и оно, что на низком уровне мы ни куя ни в какой существующий ни куя не пишем.
А во-вторых: мы в обоих решениях пишем в конец существующего файла средствами Word'а. Либо прямо из переменных, либо из предварительно созданного другого файла. Как уж он там это интерпретирует, это можно обсуждать, но это в обоих решениях делается одинаково. Так что эту часть при сопоставлении можно взаимно сократить.

автори что тогда сравнивать?
Длину алгоритма. Продолжая аналогию с кондомами: побеждает тот, у кого короче.
...
Рейтинг: 0 / 0
Word -Access
    #32476149
Звездишь, как Троцкий.

В твоем варианте ЕСТЬ промежуточный файл. У каждого юзера - свой. В том то и дело, что НИ ХЕРА (читать умеешь? Протри глаза. Я уже устал тыкать носом.) Ворд не пишет в конец файла. Он всегда пишет в НОВЫЙ файл, а старый затирает. Поэтому одновременная правка 2-мя юзерами заведомо конфликтна - т.к. у каждого открыт именно его промежуточный файл, и именно его юзер и правит и попытается потом сохранить.

Ну посмотри ты файлики в папочках в момент работы с файлом. Ну епрст, же. НУ НЕ БАЗЫ ДАННЫХ ЭТО!!! Не пишут они прямо в файл.


Если утверждается, что юзеру 2 не будет дано Вордом открыть файл на редактирование, то это верно (или дано, но с некоторыми ограничениями - в зависимости от настройки сетевой работы). Именно в этом случае, а не потому что SaveAs, "длиннее" чем Save и может состояться выигрыш - за счет организации очереди на открытие на редактирование средствами Ворда. (Надо настроить запрет на открытие и отлавливать ошибку, пока другой сеанс не перепишет и не освободит файл).

Но это за скобками изначального Вашего "крика души":
авторОно втыкает файл в файл??? И зачем это? Постановка вопроса была - текст в программе и его надо добавить в конец существующего файла

Еще раз повторю, что в такой постановке - оба варианта РАВНОЗНАЧНЫ. Они оба втыкают нечто в темповый файл, и затем пытаются это нечто сохранит на место старого.
...
Рейтинг: 0 / 0
Word -Access
    #32476159
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Во-первых, спасибо за попытку перехода на ты. Мне так проще.

А теперь поехали сравнивать.

1. Мой способ.
1.1. Написать в конец существующего файла. (Отдаю себе отчет, что это макрокоманда, реализация которой сложна и включает в себя всякие промежуточные файлы.)

2. Твой способ.
2.1. Написать в новый файл.
2.2. Прочитать из нового файла.
2.3. Написать в конец существующего файла. (При этом 2.2 и 2.3 делаются одной командой, но мы-то знаем, что она выполняет сначала чтение, а потом запись.)
2.4. Стереть файл, созданный в 2.1.

Мое 1.1 и твое 2.3 - это одно и то же. Сокращаем их. И остаются твои 2.1, 2.2 и 2.4 со всеми вытекающими временем исполнения и шансами получить эррор.

Целую, Троцкий.
...
Рейтинг: 0 / 0
Word -Access
    #32476171
ну ничего я не пишу в новый файл. И не читаю из него.

У автора реализована публикация отчета в ворд. Вполне возможно в шаблон, хранящийся как олеобъект. Вполне возможно в активный документ, а не на диск. (Сохранение по выбору бзера).

После этого:

Я говорю -
1.вставить из файла "Архив" в активный документ (одной командой, в начало).
2. сохранить активный документ как "Архив".

в твоем случае. (после публикации имеем активный документ с новым содержимым).

1. Открываем "Архив"
2. Вставляем содержимое "активного" в "Архив".
3. Сохраняем "Архив"

расслабься
...
Рейтинг: 0 / 0
Word -Access
    #32476176
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но это только в предположении, что уже есть текущий документ. Сейчас будем долго выяснять, правильно ли мы поняли автора вопроса и есть ли такой.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Word -Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]