powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
5 сообщений из 5, страница 1 из 1
Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
    #39349756
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача такая:
Нужно найти в свойствах Word-файла (файл со сослиянием) то место (свойство), которое отвечает за линк на определенную C:\Client\DB2016.mde
В этой C:\Client\DB2016.mde есть определённый Запрос: SQL_Документ1, который подхватывает Word и грузит в себя. Имя SQL_Документ1 не меняется никогда.
Задача в том, чтобы пользователь мог оперативно (до клика) выбрать год:
C:\Client\DB201 6 .mde или
C:\Client\DB201 5 .mde или
C:\Client\DB201 4 .mde или
C:\Client\DB201 3 .mde
C:\Client\DB201 2 .mde

При открытии файла из OLE-поля, obWord должен получить конкретный линк и соответственно обратиться в ту mde, которую пользователь выбрал.
Более того, пользователь может сидеть сам в этой C:\Client\DB2016.mde и попросить данные из этой БД.
После закрытия файла Word, нужно его сохранить обратно в OLE-поле или нет (зависит от прав пользователя)

Код: vbnet
1.
2.
3.
4.
5.
Private Sub BT_DblClick(Cancel As Integer)
 Dim obWord
 Me.Dokument.Action = acOLEActivate
Set obWord = GetObject(, "Word.Application")
End Sub
...
Рейтинг: 0 / 0
Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
    #39349833
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LightN,
Вся информация о слиянии хранится в объекте obWord.MailMerge. Вам не нужно там ничего искать, просто создавайте этот объект заново:

Код: vbnet
1.
2.
3.
4.
5.
6.
objWord.MailMerge.OpenDataSource _
Name:=strMailmergeDataFilename, ConfirmConversions:=False, _
ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=0, _
Connection:="", SQLStatement:="", SQLStatement1:=""
...
Рейтинг: 0 / 0
Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
    #39349883
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,
Точно, точно! Только он лежит в obWord.ActiveDocument. MailMerge в obWord нет.
--
Это не работает:

Код: vbnet
1.
obWord.ActiveDocument.MailMerge.DataSource.ConnectString.Value = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Client\db2016.mde;Mode=Read;Jet OLEDB:Reg"


Только через пересоздание.
Спасибо. Вопрос закрыт !!!
...
Рейтинг: 0 / 0
Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
    #39349890
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LightNMailMerge в obWord нет.
Да, действительно. У меня в примере просто переменная документа называлась так же, как у вас переменная приложения. Конечно в документе. И не обязательно в активном.
...
Рейтинг: 0 / 0
Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
    #39350866
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на всякий случай. Вот это работает по кнопке в ленточной форме где есть поле Me.[Dokument], в котором лежат Word-файлы со слиянием на mde, которое нужно менять:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub ChYearWord_DblClick(Cancel As Integer)
 Dim obWord
 Dim QueryString1, TableName1, Cn1, DB1 As String
 Me.[Dokument].Action = acOLEActivate
 Set obWord = GetObject(, "Word.Application")

 DB1 = "2016" ' Это и есть параметр для замены.
 QueryString1 = obWord.ActiveDocument.MailMerge.DataSource.QueryString ' оставляем как и было
 TableName1 = obWord.ActiveDocument.MailMerge.DataSource.TableName ' оставляем как и было
 Cn1 = obWord.ActiveDocument.MailMerge.DataSource.ConnectString ' оставляем как и было

obWord.ActiveDocument.MailMerge.OpenDataSource _
 Name:="C:\Client\db" & DB1 & ".mde", ConfirmConversions:=False, _
 ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
 PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
 WritePasswordTemplate:="", Revert:=False, Format:=0, _
 Connection:=TableName1, SQLStatement:=TableName1, SQLStatement1:=""
 obWord.ActiveDocument.Save
 obWord.ActiveDocument.Close
 obWord.Application.Quit
 Me.Dirty = False
End Sub
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Найти и поправить link Word-файла сослияним, при открытии файла из OLE поля.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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