powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Word2000+Access2000
3 сообщений из 3, страница 1 из 1
Word2000+Access2000
    #32078223
Имеется: БД в Access, где все отчеты формируются макросом Word (название макроса такое).
Проблема: в этом макросе в поле "Командная строка" записан: путь к расположению WORD2000 и расположение конкретного отчета на диске. Получается, что перемещая отчеты, я лишаюсь доступа к ним из своей БД!
Просьба: как в эту командную строку запихнуть универсальную функцию или что-то еще, которая будет искать winword.exe и полный путь к отчетам.
За другие предложения спасибо.

Заранее благодарен
...
Рейтинг: 0 / 0
Word2000+Access2000
    #32078320
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проще всего управлять Word через Microsoft Word x.x Object Library

Dim wda As Word.Application
Dim wwd As Word.Document
'Заполняю шаблон
Set wwd = GetObject("C:\Мойфайл.doc") 'здесь путь к файлу
'но вот какая идея
' хранить шаблон внутри БД (например в image)
'выплевывать на диск а затем заполнять.
'таким образом файл будет расположен там куда выплюнул
'следовательно никаких проблем с поиском пути
Set wda = wwd.Parent

wda.Visible = True
wwd.Bookmarks("Номер").Select 'способ 1
wda.Activate

With wda.Selection
.Goto Name:="Номер" 'способ 2
.TypeText Text:=Nz(Forms!Dog_Vvod!txtName_B, " ")
End With

Set wwd = Nothing
Set wda = Nothing

но если хочется напрямую выяснить путь к ворду то придется пользоваться апишными функциями работы с реестром
...
Рейтинг: 0 / 0
Word2000+Access2000
    #32078809
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Можно создать таблицу, где прописать путь к отчетам.
Поле выводить в форме, путь к отчетам брать из него.
2. Если отчеты не найдены (проверка в коде), можно выводить InputBox

3. Насчет пути к Word - не обязательно использовать реестр.
Можно сделать так (в самом Ворде):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Function FindWordPath() As String
Dim strPath As String
With Application.FileSearch
    .NewSearch
    .FileType = msoFileTypeAllFiles
    .FileName =  "WINWORD.EXE" 
    .LookIn =  "C:\" 
    .SearchSubFolders = True
    .Execute
    If .FoundFiles.Count >  0  Then
        strPath = .FoundFiles( 1 )
        strPath = Left$(strPath, InStrRev(strPath,  "\" ))
        FindWordPath = strPath
    End If
End With
End Function
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Word2000+Access2000
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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