Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 400 / 10 сообщений из 10, страница 1 из 1
07.03.2017, 23:40
    #39415731
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Делаю экспорт данных в шаблон Excel, возникла необходимость добавить в строки с кодами объектов названия объектов, но как примечание. Сварганил код приведённый ниже. Во время исполнения выкидывает окно: Заголовок - название файла, пиктограмма жёлтого треугольника с восклицательным знаком, чуть дальше цифрой 400 и кнопка Ok. Прогнал этот участок пошагово, заметил что срабатывает на разных участках кода. Кто подскажет, что за фигня творится?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         If objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).AddComment
            objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
         End If
      rs.MoveNext
      Next j
   Next i
...
Рейтинг: 0 / 0
07.03.2017, 23:44
    #39415732
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Cells висячий.

зы: Помимо всего прочего.
...
Рейтинг: 0 / 0
07.03.2017, 23:53
    #39415734
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Predeclared,

В смысле?
...
Рейтинг: 0 / 0
08.03.2017, 00:12
    #39415738
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Что есть Cells в приведенном листинге?
...
Рейтинг: 0 / 0
08.03.2017, 00:28
    #39415740
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Predeclared,

Ячейка (Номер строки, Номер столбца)
...
Рейтинг: 0 / 0
08.03.2017, 00:33
    #39415742
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
В приведенном листинге нет никакой "Ячейка".

Что есть Cells в приведенном листинге?
...
Рейтинг: 0 / 0
08.03.2017, 01:06
    #39415745
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Predeclared,

Выдержка из Хелпа
Example
This example sets the font size for cell C5 on Sheet1 to 14 points.
(В этом примере задается размер шрифта для ячейки C5 на листе Sheet1 до 14 пунктов.)

Код: vbnet
1.
Worksheets("Sheet1").Cells(5, 3).Font.Size = 14



Cells (5,3) - ячейка по 5-ой строке и 3-ему столбцу, что соответствует ячейке C5
...
Рейтинг: 0 / 0
08.03.2017, 07:35
    #39415773
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
ФАЭТ, не надо приводить хэлп. Тебе пытаются объяснить, что все объекты нужно получать от базового объекта (экземпляра сервера автоматизации) Excel.Application , который создан/получен в свою очередь с помощью - New, CreateObject, GetObject .
Например
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim objAppExcel as Excel.Application
Dim objWsExcel as Excel.Worksheet
Set objAppExcel =New Excel.Application
Set objWsExcel =objAppExcel.Workbooks(1).Worksheets(1)
...
objWsExcel.Range(objWsExcel.Cells(2 + i, 1), objWsExcel.Cells(2 + i, 1)).AddComment
...
...
Рейтинг: 0 / 0
08.03.2017, 09:28
    #39415782
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Панург,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim objExcel As Object
Dim objWindow As Object

Set objExcel = GetObject(, "Excel.Application")
Set objWindow = objExcel.ActiveWindow

objExcel.WindowState = -4137
objWindow.WindowState = -4137
objWindow.Activate
..............

Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         If objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).AddComment
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
         End If
      rs.MoveNext
      Next j
   Next i



Таже ошибка, только уже конкретно на строке

Код: vbnet
1.
objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
...
Рейтинг: 0 / 0
08.03.2017, 10:43
    #39415792
ФАЭТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 400
Ну вообщем так всё работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim ObjectName as String

Set objExcel = GetObject(, "Excel.Application")
Set objWindow = objExcel.ActiveWindow

objExcel.WindowState = -4137
objWindow.WindowState = -4137
objWindow.Activate
..............

Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         ObjectName=rs.Fields("Object_Name")
         If objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).AddComment ObjectName
            Exit For
         End If
      rs.MoveNext
      Next j
   Next i
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 400 / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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