Страница 1 из 1

GetObject не работает

Добавлено: 02 авг 2005, 10:31
ShiZ
люди помогите, пожалуйста.
есть приложение MS Access
в нем выполняются какие-то действия, и потом печатается отчет в Excel.
для того что бы открыть Excel используется функция GetObject.
так вот. проблема в том, что на одном компе функция отказалась работать.
то есть после выполнения строки
Set <переменная> = GetObject("путь")
и нажатии Shift + F9 на <переменная> дается значение Nothing.
и Excel не открывается
при этом руками файл открывается, на остальных компах работает.
офис переставляли.
версия 2003.
что с ней сделать?

Добавлено: 02 авг 2005, 11:44
ShiZ
извините, соврал. тот же глюк появился выше, на строчке
Set MyXl = GetObject(, "Excel.Application")

Добавлено: 21 сен 2005, 13:46
Naeel Maqsudov
для того что бы открыть Excel используется функция GetObject
Напрасно. Она не может для этого использоваться!
Цитата:
' Getobject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = Getobject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
Она возвращает ссылку на инстанс екселя, если он запущен.

Чтобы запустить эксель лучше через меню Tools/References добавить в проект использование Microsoft Excel и написать

Код: Выделить всё

Sub qwe()
  Dim xl As New Excel.Application
  With xl
    '.Visible = True
    .Workbooks.Add
    .Cells(1, 1).Value = "=2*(123+432)"
    MsgBox .Cells(1, 1).Text
  End With
  Set xl = Nothing
End Sub

Set <переменная> = GetObject("путь")
Вот это совсем другое дело. Так обязательно должен запускаться (если не запущен).
Если не запускается, то в соответстви с цитатой из справки (см выше) проанализируйте Err.Number и выясните причину.