Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access -> Word / 6 сообщений из 6, страница 1 из 1
08.10.2004, 19:48:48
    #32730815
Bolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
Попросили меня сделать экспорт данных формы в документ Word. Т.е существует готовая болванка документа и нужно в определенные места текста занести значения полей формы. Возможно ли это ?
Всем спасибо.
...
Рейтинг: 0 / 0
08.10.2004, 21:44:32
    #32730872
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
Конечно, поищи поиском по форуму, много раз обсуждался этот вопрос.
...
Рейтинг: 0 / 0
08.10.2004, 21:52:10
    #32730875
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
Чичас, гляну...

Вот обрезки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  Dim WordApp as object
  Dim Range

блаблабла     ' Если файл есть 
    Set WordApp = CreateObject("Word.Application")
  
    WordApp.Application.Documents.Open GetMainValue("ДирГотПредл") & блабла & ".doc"
  
    Set Range = WordApp.Application.ActiveDocument.Range

    Range.Find.Execute findtext:="%Receiver%", ReplaceWith:=Nz(Me.Контра.Column( 5 ), ""), Replace:=wdReplaceAll
   аналогичные действия
  
    Document.Save
    Set Range = Nothing
    Set WordApp = Nothing
...
Рейтинг: 0 / 0
09.10.2004, 04:16:13
    #32730947
vma_mnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
GeoЧичас, гляну...

Вот обрезки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  Dim WordApp as object
  Dim Range

блаблабла     ' Если файл есть 
    Set WordApp = CreateObject("Word.Application")
  
    WordApp.Application.Documents.Open GetMainValue("ДирГотПредл") & блабла & ".doc"
  
    Set Range = WordApp.Application.ActiveDocument.Range

    Range.Find.Execute findtext:="%Receiver%", ReplaceWith:=Nz(Me.Контра.Column( 5 ), ""), Replace:=wdReplaceAll
   аналогичные действия
  
    Document.Save
    Set Range = Nothing
    Set WordApp = Nothing



Открываешь Word, включаешь запись макроса, что-то делаешь, копируешь макрос вместо аналогичных действий, правишь ручками и все.
...
Рейтинг: 0 / 0
12.10.2004, 10:18:59
    #32733363
Bolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
Убил кучу времени на реализацию совета - НИЧЕГО !
Office XP
Может кто объяснить где ошибка ?

Private Sub butWordReport_Click()
Dim WordApp As Object
Dim myRange
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True 'Word виден
WordApp.Application.Documents.Open ("C:\s" & ".doc") 'открыли файл "c:\s.doc"
' файл "s.doc" содержит одно слово - "Microsoft"
' загружаем рабочую область
Set myRange = WordApp.Application.ActiveDocument.Range

'Запускаем поиск и безрезультатно пытаемся заменить
' слово "Microsoft" на "g"
myRange.Find.Execute FindText:="Microsoft", ReplaceWith:="hello", _
Replace:=wdReplaceAll
If myRange.Find.Found = True Then
myRange.select 'если нашли текст, то выделяется найденное
'на самом деле выделяется, но замены нет!
Selection.TypeText Text:="g" 'пытаемся заместить найденное буквой "g"
'Вылетает ошибка "Object Required"
End If
WordApp.Application.Documents.Save
WordApp.Application.Documents.Close ' если не закрыть документ,
Set Range = Nothing 'при повторном открытии будет ошибка
Set WordApp = Nothing
End Sub
...
Рейтинг: 0 / 0
12.10.2004, 11:27:28
    #32733531
Вариант
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access -> Word
Вариант (вставка через закладки, одноименные полям набора данных)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Function WordPutFrRstByName(wrD As Object, rst As Recordset, Optional sSuf As String, Optional SetNull As Boolean) As Boolean     'wrD As  Word.Document 'Object 
 'wrD As Word.Document , Rst - текущая запись 
Dim wrdR As Object   'Word.Range ' 
Dim sName As String, i   As Long
    If Not (rst.EOF And rst.BOF) Then
        On Error Resume Next
        For i =  0  To rst.Fields.Count -  1 
            sName = rst.Fields(i).Name
            If (SetNull) And IsNull(rst.Fields(i)) Then
                 'пропускаем публикацию Null (оставляем "по умолчанию) 
            Else
                Set wrdR = wrD.Bookmarks(sName & sSuf).Range
                If Not wrdR Is Nothing Then
                    wrdR.Text = rst.Fields(i)  'wrdR 
                    wrD.Bookmarks.Add (sName & sSuf), wrdR  'просто вставка затирает закладки 
                    
                     'wrD.CustomDocumentProperties.Add sName & sSuf, 1, 1, 1, sName & sSuf ' как связь 
                     'Add(Name As String, LinkToContent As Boolean, [Type], [Value], [LinkSource]) 
                     'вставляем св-ва: 
                     'wrD.CustomDocumentProperties.Add sName & sSuf, False, FieldTypeTo_CustPropType(rst.Fields(i).TYPE), rst.Fields(i)   ', sName & sSuf 
                End If
            End If
            Set wrdR = Nothing  'чтобы не вставлять при ошибках в старые 
        Next i
        wrD.Fields.Update  'Source 
        wrD.UndoClear
    End If
    WordPutFrRstByName = True
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access -> Word / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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