4 / 4 / 3
Регистрация: 07.01.2014
Сообщений: 66

Вывод таблицы в Word. Error 462: The remote server machine does not exist or is unavailable

31.01.2022, 08:57. Показов 2143. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет,

есть файл шаблона документа (*.dot). На основе него создаётся документ.
На месте закладки "таблица" заменяется на созданную внутри кода VBA таблицу.

На первый раз формируется всё красиво.
На второй раз вылетает ошибка Error 462: The remote server machine does not exist or is unavailable и ругается на место, где я задаю ширину столбиков (строка 36)

PureBasic
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
Private Function funOutputWord(strPathDot As String, strPathWord As String, arr_data As Variant, cnt_rows As Variant) As Boolean
'
'--------------------------------------------------------------------------
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim DlgUser As Integer
Dim myTable As Word.Table
Dim objRange As Object
 
On Error GoTo 0
 
    
    Set objWord = New Word.Application
 
    
    If Dir(strPathWord) <> "" Then
        DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
        Select Case DlgUser
            Case vbNo
                objWord.Documents.Open strPathWord
                GoTo funOutputWord_End
            Case Else
                Kill strPathWord
        End Select
    End If
    
    'Открываем НОВЫЙ документ сформированный по заданному шаблону
    Set objDoc = objWord.Documents.Add(strPathDot)
    
    Set myTable = objWord.Selection.Range.Tables.Add(objDoc.Bookmarks("таблица").Range, cnt_rows, 6)
    
    With myTable
 
        .AutoFormat 16
        
        .Columns(1).Width = CentimetersToPoints(1.19)
        .Columns(2).Width = CentimetersToPoints(2.75)
        .Columns(3).Width = CentimetersToPoints(2.25)
        .Columns(4).Width = CentimetersToPoints(6.75)
        .Columns(5).Width = CentimetersToPoints(3)
        .Columns(6).Width = CentimetersToPoints(2.79)
 
        For i = 1 To 6
        
            myTable.Cell(1, i).Range.ParagraphFormat.Alignment = 1
            myTable.Cell(1, i).Range.Cells.VerticalAlignment = 1
            
            ' строка заголовков - жирным
            myTable.Cell(1, i).Range.Bold = True
        
        Next i
        
        
        myTable.Cell(1, 1).Range.Text = "№ п/п"
        
        myTable.Cell(1, 2).Range.Text = "Столбик 2"
        
        myTable.Cell(1, 3).Range.Text = "Столбик 3"
        
        myTable.Cell(1, 4).Range.Text = "Столбик 4"
        
        myTable.Cell(1, 5).Range.Text = "Столбик 5"
        
        myTable.Cell(1, 6).Range.Text = "Столбик 6"
        
 
        For i = 1 To UBound(arr_data)
 
            For j = 0 To UBound(arr_data, 2)
 
                If i = 1 Then
 
                    myTable.Cell(j + 2, i).Range.Text = arr_data(i, j) & "."
 
                Else
 
                    myTable.Cell(j + 2, i).Range.Text = arr_data(i, j)
 
                End If
 
 
                Select Case i
 
                    Case 1, 4, 5, 6
                    ' от левого
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 0
 
                    Case 2
                    ' центр
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 1
 
                    Case 3
                    ' от правого
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 2
 
                End Select
                
                myTable.Cell(j + 2, i).Range.Cells.VerticalAlignment = 1
 
 
            Next j
 
 
        Next i
        
        '.SaveAs strPathWord
        
    End With
 
    
    
    funOutputWord = True
 
 
funOutputWord_End:
    On Error Resume Next
    objWord.Visible = True
    objWord.Activate
 
    Set myTable = Nothing
    Set objRange = Nothing
    Set objDoc = Nothing
    Set objWord = Nothing
    
    Err.Clear
    Exit Function
 
funOutputWord_Err:
 
 
    funOutputWord = False
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Function: funOutputWord in module: Form_Form1", vbCritical, "Error in Application"
    Err.Clear
    Resume funOutputWord_End
 
End Function
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2022, 08:57
Ответы с готовыми решениями:

Ошибка 462 The remote server machine does not exist or is unavailable при формировании документа Word из Access (2007)
Добрый день! Не силен в программировании, поэтому не судите строго. Задача следующая: необходимо из формы Access при нажатии кнопки создать...

Ошибка при создании таблицы в Word (Remote server machine does not exist or is unavailable)
Здравствуйте. Из access , макросом, создаю таблицу в ворде. первый раз создаётся нормально, но при следующем создании вылетает ошибка: ...

Работа с Word-ом и ошибка The remote server machine not exist or is unavailable
Моя поцедура выводит некоторые результаты в ворд по нажатию кнопки, при повторном нажатии кнопки она также нормально отрабатывает, но если...

9
ᴁ©
Эксперт MS Access
 Аватар для АЕ
4018 / 2330 / 481
Регистрация: 13.12.2016
Сообщений: 7,962
Записей в блоге: 5
31.01.2022, 09:16
________, 118 строку поставьте после 125, а 116 закоментируйте пока
1
4 / 4 / 3
Регистрация: 07.01.2014
Сообщений: 66
31.01.2022, 09:48  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
________, 118 строку поставьте после 125, а 116 закоментируйте пока
Получаю жалобу на 126 строку "Runtime error 91: Object variable or with block variable not set"

PureBasic
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
Private Function funOutputWord(strPathDot As String, strPathWord As String, arr_data As Variant, cnt_rows As Variant) As Boolean
'
'--------------------------------------------------------------------------
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim DlgUser As Integer
Dim myTable As Word.Table
Dim objRange As Object
 
On Error GoTo 0
 
    
    Set objWord = New Word.Application
 
    
    If Dir(strPathWord) <> "" Then
        DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
        Select Case DlgUser
            Case vbNo
                objWord.Documents.Open strPathWord
                GoTo funOutputWord_End
            Case Else
                Kill strPathWord
        End Select
    End If
    
    'Открываем НОВЫЙ документ сформированный по заданному шаблону
    Set objDoc = objWord.Documents.Add(strPathDot)
    
    Set myTable = objWord.Selection.Range.Tables.Add(objDoc.Bookmarks("таблица").Range, cnt_rows, 6)
    
    With myTable
 
        .AutoFormat 16
        
        .Columns(1).Width = CentimetersToPoints(1.19)
        .Columns(2).Width = CentimetersToPoints(2.75)
        .Columns(3).Width = CentimetersToPoints(2.25)
        .Columns(4).Width = CentimetersToPoints(6.75)
        .Columns(5).Width = CentimetersToPoints(3)
        .Columns(6).Width = CentimetersToPoints(2.79)
 
        For i = 1 To 6
        
            myTable.Cell(1, i).Range.ParagraphFormat.Alignment = 1
            myTable.Cell(1, i).Range.Cells.VerticalAlignment = 1
            
            ' строка заголовков - жирным
            myTable.Cell(1, i).Range.Bold = True
        
        Next i
        
        
        myTable.Cell(1, 1).Range.Text = "№ п/п"
        
        myTable.Cell(1, 2).Range.Text = "Столбик 2"
        
        myTable.Cell(1, 3).Range.Text = "Столбик 3"
        
        myTable.Cell(1, 4).Range.Text = "Столбик 4"
        
        myTable.Cell(1, 5).Range.Text = "Столбик 5"
        
        myTable.Cell(1, 6).Range.Text = "Столбик 6"
        
 
        For i = 1 To UBound(arr_data)
 
            For j = 0 To UBound(arr_data, 2)
 
                If i = 1 Then
 
                    myTable.Cell(j + 2, i).Range.Text = arr_data(i, j) & "."
 
                Else
 
                    myTable.Cell(j + 2, i).Range.Text = arr_data(i, j)
 
                End If
 
 
                Select Case i
 
                    Case 1, 4, 5, 6
                    ' от левого
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 0
 
                    Case 2
                    ' центр
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 1
 
                    Case 3
                    ' от правого
                        myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 2
 
                End Select
                
                myTable.Cell(j + 2, i).Range.Cells.VerticalAlignment = 1
 
 
            Next j
 
 
        Next i
        
        '.SaveAs strPathWord
        
    End With
 
    
    
    funOutputWord = True
 
 
funOutputWord_End:
    'On Error Resume Next
    objWord.Visible = True
    
 
    Set myTable = Nothing
    Set objRange = Nothing
    Set objDoc = Nothing
    Set objWord = Nothing
    
    Err.Clear
    objWord.Activate
    Exit Function
 
funOutputWord_Err:
 
 
    funOutputWord = False
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Function: funOutputWord in module: Form_Form1", vbCritical, "Error in Application"
    Err.Clear
    Resume funOutputWord_End
 
End Function
0
ᴁ©
Эксперт MS Access
 Аватар для АЕ
4018 / 2330 / 481
Регистрация: 13.12.2016
Сообщений: 7,962
Записей в блоге: 5
31.01.2022, 09:51
________, ну правильно в 123 вы его отключаете а в 126-й вызываете.
0
4 / 4 / 3
Регистрация: 07.01.2014
Сообщений: 66
31.01.2022, 10:05  [ТС]
Хех, ну я же перенёс 118 строку после 125-ой )

А если
PureBasic
1
2
    objWord.Activate
    Set objWord = Nothing
то ошибка 462 беспокоит
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
31.01.2022, 10:14
Лучший ответ Сообщение было отмечено ________ как решение

Решение

Цитата Сообщение от ________ Посмотреть сообщение
CentimetersToPoints
замените на
Visual Basic
1
objWord.CentimetersToPoints
1
ᴁ©
Эксперт MS Access
 Аватар для АЕ
4018 / 2330 / 481
Регистрация: 13.12.2016
Сообщений: 7,962
Записей в блоге: 5
31.01.2022, 10:17
Visual Basic
1
objWord.Quit
0
Мы один, давай на "ты"
3815 / 1369 / 336
Регистрация: 16.06.2016
Сообщений: 3,240
31.01.2022, 10:20
Лучший ответ Сообщение было отмечено ________ как решение

Решение

Цитата Сообщение от ________ Посмотреть сообщение
где я задаю ширину столбиков (строка 36)
потому что CentimetersToPoints является методом Word. У тебя запускается неявно ещё один экземпляр.
Исправь так (и поправь везде где используются константы, методы и свойства не Access)
Visual Basic
1
2
3
...      
        .Columns(1).Width = objWord.CentimetersToPoints(1.19)
...
Добавлено через 1 минуту
Экземпляр Word который запущен неявно остаётся "висеть". Посмотри в диспетчере задач.
1
4 / 4 / 3
Регистрация: 07.01.2014
Сообщений: 66
31.01.2022, 10:29  [ТС]
boby104, Панург, Точно. Спасибо!

АЕ, В этом случае, когда открывается окно ворда, сразу же появляется диалоговое окно "Сохранить документ?". Т.к. этот метод аналогичен закрытию окна ворда.
В любом случае, спасибо!
0
Эксперт MS Access
 Аватар для alvk
7455 / 4588 / 302
Регистрация: 12.08.2011
Сообщений: 14,350
31.01.2022, 14:00
Цитата Сообщение от ________ Посмотреть сообщение
.SaveAs strPathWord
раскоментируйте, либо
вот после этого запятую введите и там должен быть вариант без вопросов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2022, 14:00
Помогаю со студенческими работами здесь

из Word в Excel ( The remote server machine does not exist or is unaviable )
Добрый день! Задача - вытащить таблицу и определенный текст из документа Word и вставить в ячейку Excel. sub тест () Dim...

The remote server returned an error: (404) Not Found
работаю с HttpWebRequest. делаю запрос через GetResponse и вываливается исключение что сайт не найден. вобщем то все понятно и ничего...

Ошибка: The remote server returned an error: (429) WebException
Сделал порядка 20ти ботов, отличаются параметрами, но алгоритм почти одинаков. Для каждого из ботов выделили API ключи. Каждый бот...

Lotus & Db2 Error. Rm Unavailable.: An Error Occurred Accessing Th
Привет други! Может встречали, помогите, плиз, если знаете. После аварийного отключения электричества выключились два сервера: ...

Server Application Unavailable
Помогите! Проблема выглядит следующим образом. С ASP.NET страницы по нажатию кнопки вызывается метод некоего обьекта - фактически при...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Исключения в Java: советы, примеры кода и многое другое
Javaican 18.05.2025
Исключения — это объекты, созданные когда программа сталкивается с непредвиденной ситуацией: файл не найден, сетевое соединение разорвано, деление на ноль. . . Список можно продолжать до бесконечности. . . .
Как сделать SSO (Single Sign-On) в C# приложении
stackOverflow 18.05.2025
SSO — это механизм, позволяющий пользователю пройти аутентификацию один раз и получить доступ к нескольким приложениям без повторного ввода учетных данных. Вы наверняка сталкивались с ним, когда. . .
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru