Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
1

Вывод таблицы в Word посредством vba.

12.11.2018, 13:04. Показов 7346. Ответов 12
Метки vba, word (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Делаю отчет в Access кодом VBA и вывожу в вордовский документ. Подскажите код на создание таблицы таким же образом. Если тема была, прошу прощения, не нашел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2018, 13:04
Ответы с готовыми решениями:

Создание таблицы посредством VBA
Добрый день! Скажите пожалуйста, у типов полей: BINARY, TINYINT, INTEGER, TINYINT, DECIMAL...

Vba вывод из access в word
Здравствуйте , работаю в vba excel , необходимо при нажатии кнокпи в vba excel вывести таблицу в...

VBA. Вывод таблицы на форму (при создании)
Доброго времени суток! Есть программка, где соответственно заданию(именно заданию, сама бы сделала...

Вывод значений в word из временной таблицы
при открытии бд на главной форме при нажатии на кнопку "Открыть форму Вариант1" появляется форма в...

12
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 13:23 2
Цитата Сообщение от Rembon Посмотреть сообщение
Подскажите код на создание таблицы таким же образом.
Вопрос (мне) непонятен.
Почитайте пожалуйста Правила раздела, и выполняйте их насколько это возможно.
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 13:27  [ТС] 3
Извиняюсь.

Хочу создать таблицу в Word, но посредством кодом VBA в Access. Т.е код на создание таблицы в Word находится в access. Не могли бы подсказать?
0
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 13:34 4
Цитата Сообщение от Rembon Посмотреть сообщение
Т.е код на создание таблицы в Word находится в access. Не могли бы подсказать?
Да!
Рекомендую глянуть на http://msa.polarcom.ru/st/f0000026.htm - там примеры экспорта списочных данных (таблиц)
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 13:38  [ТС] 5
Немного не то. Мне требуется создать в ворде пустую таблицу 2 на 3. Только кодом VBA. А там не знаю, будет ли видно код, и вид таблицы не дефолтный.
0
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 13:47 6
Лучший ответ Сообщение было отмечено Rembon как решение

Решение

Rembon, конкретно ваше:
http://msa.polarcom.ru/st/s0000284.htm (там Список Людей в таблице)

Добавлено через 8 минут
Цитата Сообщение от Rembon Посмотреть сообщение
Мне требуется создать в ворде пустую таблицу 2 на 3
Visual Basic
1
2
'
    ActiveDocument.Tables.Add Selection.Range, 2, 3
1
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 14:04  [ТС] 7
По правде говоря, не могу понять где создаются таблички.=)
Извиняюсь за затуп)
Да и неужели нет более простого кода?

Пришла в голову идея, записать макрос в ворде, когда создаю табличку. Думаю поможет)

Спасибо за доп инфу <3

Upd.
Ну вот) То что я искал. Спасибо большое

Добавлено через 9 минут
Позвольте попросить вас об одолжении так сказать.
Вы не могли бы вставить этот код куда-то сюда. Я так понимаю, его нужно немного видоизменить?
Место куда требуется вставить отмечу кучей кавычек.

Visual Basic
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Public Sub WordA(SelectOrderID)
' Передача данных в Microsoft Word
' Описание рабочих переменных
Dim B, C, F, D, E
Dim a As Variant
a = Date
' Объект Word
Dim oWord As Object
Dim DSset As ADODB.Recordset  ' Набор данных
Set DSset = New ADODB.Recordset
' Процедура находится в модуле ModuleSlave
' SelectDateTreaty - Дата
' DayMonthYear - Дата прописью
' Создание объекта MS Word
Set oWord = CreateObject("Word.Application")
' Сделать окно MS Word видимым
oWord.Visible = True
' Заголовок окна MS Word
oWord.Caption = "Заказ-наряд на проведение проверки качества "
oWord.Documents.Add
' Ориентация книжная бумага А4
' Поля (1 см = 28 пунктов)
With oWord.ActiveDocument.PageSetup
 .LineNumbering.Active = False
     .Orientation = wdOrientPortrait
     .LeftMargin = 48
     .RightMargin = 40
     .TopMargin = 56
     .BottomMargin = 56
End With
With oWord.ActiveDocument
     .AutoHyphenation = True
     .HyphenateCaps = True
     .ConsecutiveHyphensLimit = 0
End With
With oWord.Selection
     .Font.Bold = True
     .Font.Name = "Times New Roman"
     .Font.Size = 11
     .ParagraphFormat.Alignment = wdAlignParagraphJustify
     .TypeText ("Заказ-наряд от " & a)
     .TypeParagraph
     .TypeText ("ООО Сервисный центр тел. +7 800 7707 888")
     .TypeParagraph
     .Font.Bold = False
     .Font.Size = 9
     .ParagraphFormat.Alignment = wdAlignParagraphJustify
     .TypeText ("Юридический адрес 143909, Московская область, г.Балашика, ул.Звездная, д.76, пом 418")
     .TypeParagraph
     .TypeText ("Адрес филиала: инд 195220 г. Санкт-Петербург пр. Науки 21 к.1")
     .TypeParagraph
     .Font.Underline = True
     .TypeText ("Основание: Расходная накладная от 29.05.2015")
     .TypeParagraph
     .Font.Bold = True
     .Font.Size = 11
     With DSset
     .Source = "SELECT OrderID, FamilyName, FirstName, SecondName, Object, Dates, DueDate, Cost, Phone " & _
     "FROM tblOrder " & _
      "WHERE OrderID = " & SelectOrderID
     .ActiveConnection = CurrentProject.Connection
     .CursorType = adOpenKeyset
     .Open
     End With
D = Trim(DSset(0))
F = Trim(DSset(1))
B = Trim(DSset(2))
C = Trim(DSset(8))
E = ("Покупатель: " & F & " " & B)
.TypeText (E)
.TypeParagraph
.Font.Bold = False
.Font.Size = 9
.Font.Underline = False
.TypeText ("Сот. :" & C)
DSset.Close
""""""""""""""""
     End With
End Sub
0
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 14:05 8
Цитата Сообщение от Rembon Посмотреть сообщение
Пришла в голову идея, записать макрос в ворде, когда создаю табличку. Думаю поможет)
Правильная идея , только потом лучше использовать позднее связывание через Object, а числовые значения смотреть в Immediate окошке ...
?wdWord9TableBehavior - Например.
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 14:05  [ТС] 9
Т.е после строчки Сот. "Номер телефона" должна идти табличка. Но я совсем плыву, не понимаю куда вставить(
0
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 14:12 10
Rembon, итак:
"SELECT OrderID, FamilyName, FirstName, SecondName, Object, Dates, DueDate, Cost, Phone " ...
Object и Cost = Зарезервированные слова VBA - лучше сразу исправить!

Добавлено через 1 минуту
Цитата Сообщение от Rembon Посмотреть сообщение
Место куда требуется вставить отмечу кучей кавычек.
И таблички откуда данные берутся не мешало бы выложить на форум (после исправления по сабжу #10)
+ Образец желаемого результата не помешал - бы ...
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 14:12  [ТС] 11
Да, хорошо. Уже сталкивался с такой проблемой.

Слова попозже изменю
Вложения
Тип файла: rar 81 Стикалович 4.rar (3.52 Мб, 64 просмотров)
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
12.11.2018, 14:17  [ТС] 12
А образец вот. Прям под копирку

https://i5.otzovik.com/2016/08... 510_b.jpeg

Добавлено через 1 минуту
Модуль Slave отвечает за вывод
0
10741 / 5582 / 1409
Регистрация: 05.10.2016
Сообщений: 15,787
12.11.2018, 16:33 13
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Цитата Сообщение от Rembon Посмотреть сообщение
А образец вот. Прям под копирку
Ну нечто такое:
Кликните здесь для просмотра всего текста
Visual Basic
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Public Sub WordA(SelectOrderID)
' Передача данных в Microsoft Word
' Описание рабочих переменных
Dim B, C, F, D, E
Dim a As Variant
Dim s$, i%
a = Date
' Объект Word
Dim oWord As Object
 
Dim DSset As ADODB.Recordset  ' Набор данных
Set DSset = New ADODB.Recordset
' Процедура находится в модуле ModuleSlave
' SelectDateTreaty - Дата
' DayMonthYear - Дата прописью
' Создание объекта MS Word
Set oWord = CreateObject("Word.Application")
' Сделать окно MS Word видимым
oWord.Visible = True
' Заголовок окна MS Word
oWord.Caption = "Заказ-наряд на проведение проверки качества "
oWord.Documents.Add
' Ориентация книжная бумага А4
' Поля (1 см = 28 пунктов)
With oWord.ActiveDocument.PageSetup
 .LineNumbering.Active = False
     .Orientation = wdOrientPortrait
     .LeftMargin = 48
     .RightMargin = 40
     .TopMargin = 56
     .BottomMargin = 56
End With
With oWord.ActiveDocument
     .AutoHyphenation = True
     .HyphenateCaps = True
     .ConsecutiveHyphensLimit = 0
End With
 
 
    With oWord.Selection
         .Font.Bold = True
         .Font.Name = "Times New Roman"
         .Font.Size = 11
         .ParagraphFormat.Alignment = wdAlignParagraphJustify
         .TypeText ("Заказ-наряд от " & a)
         .TypeParagraph
         .TypeText ("ООО Сервисный центр тел. +7 800 7707 888")
         .TypeParagraph
         .Font.Bold = False
         .Font.Size = 9
         .ParagraphFormat.Alignment = wdAlignParagraphJustify
         .TypeText ("Юридический адрес 143909, Московская область, г.Балашика, ул.Звездная, д.76, пом 418")
         .TypeParagraph
         .TypeText ("Адрес филиала: инд 195220 г. Санкт-Петербург пр. Науки 21 к.1")
         .TypeParagraph
         .Font.Underline = True
         .TypeText ("Основание: Расходная накладная от 29.05.2015")
         .TypeParagraph
         .Font.Bold = True
         .Font.Size = 11
         With DSset
            .Source = "SELECT OrderID, FamilyName, FirstName, SecondName, Object, Dates, DueDate, Cost, Phone " & _
            "FROM tblOrder " & _
            "WHERE OrderID = " & SelectOrderID
            .ActiveConnection = CurrentProject.Connection
            .CursorType = adOpenKeyset
            .Open
         
            D = !OrderID
            F = !FamilyName
            B = !FirstName
            C = !Phone
            E = "Покупатель: " & F & (" " + B)
         End With
    
    .TypeText (E)
    .TypeParagraph
    .Font.Bold = False
    .Font.Size = 9
    .Font.Underline = False
    .TypeText ("Сот. :" & C)
    DSset.Close
    End With
    
'======================================================================
'Пошла табличка:.
    oWord.Selection.TypeParagraph
 
    oWord.ActiveDocument.Tables.Add oWord.Selection.Range, 2, 4, 1, 0
    'oWord.ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
        4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
        
        With oWord.Selection.Tables(1)
            If .Style <> "Table Grid" Then
                .Style = "Table Grid"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
        End With
          
        oWord.Selection.Tables(1).Columns(1).SetWidth ColumnWidth:=28.1, RulerStyle:= _
            wdAdjustFirstColumn
    
        oWord.Selection.Tables(1).Columns(2).SetWidth ColumnWidth:=63.8, RulerStyle:= _
            wdAdjustFirstColumn
    
        oWord.Selection.Tables(1).Columns(3).SetWidth ColumnWidth:=255.15, RulerStyle:= _
            wdAdjustFirstColumn
            
        
        oWord.Selection.TypeText Text:="№"
        oWord.Selection.MoveRight Unit:=wdCell
        oWord.Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
        oWord.Selection.Cells.Merge
        
        oWord.Selection.TypeText Text:="Наименование Товара"
        oWord.Selection.MoveRight Unit:=wdCell
        oWord.Selection.TypeText Text:="Серийный Номер"
 
        s = "SELECT * FROM Item WHERE OrderID=" & SelectOrderID
    
    
        With DSset
            .Source = s
            .ActiveConnection = CurrentProject.Connection
            .CursorType = adOpenKeyset
            .Open
             Do While Not .EOF '
                i = i + 1
                With oWord.Selection
                    .MoveRight 12 ' Unit:=wdCell
                    .TypeText CStr(i)
                    .MoveRight 12 ' Unit:=wdCell
                    .TypeText "123456789" '???? !!!!
                    .MoveRight 12 ' Unit:=wdCell
                    'Debug.Print DSset!ItemName
                    .TypeText CStr(DSset!ItemName)
                    .MoveRight 12 ' Unit:=wdCell
                    .TypeText "1234567890серийный" '???? !!!!
                End With
            .MoveNext
            Loop
            .Close
        End With
 
 
        oWord.Selection.MoveDown Unit:=wdLine, Count:=1
 
End Sub
0
12.11.2018, 16:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2018, 16:33
Помогаю со студенческими работами здесь

Вывод таблицы (в дочерней форме) в Word
Простите если не доглядел и где-то таки есть такая тема. Есть база данных туристов. В основной...

Вывод таблицы из Access 2010 в шаблон Word 2003
Добрый день. Пытаюсь по закладке в шаблоне вывести таблицу из Access в документ word. Если файлы...

Изменение поля посредством VBA
Такая проблема. Нужно при нажатии на форме кнопки изменить данные в таблице. Из таблицы...

Об экспорте данных посредством VBA
Помогите, плз, разобраться в таком вопросе. Передо мной стоит задача экспорта данных в текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru