Странное поведение при запросе к xls файлу
Добавлено: 18 июн 2009, 10:24
Привет всем!
Есть у меня два файла xls, первый делает запрос ко второму файлу через adodb. Второй файл лежит в сети.
Все хорошо работает пока кто-нибудь с другого компьютера не откроет второй файл, вот тогда и начинаются странности. Вместо простого получения данных из второго файла при запросе он почему то открывается (появляется окно экселя с этим вторым файлом) и все повисает.
Код запроса ко второму файлу:
Как мне победить эту странность? Второй файл нужен только для чтения. может что добавить в строке коннекта?
Так же подозреваю что может помочь строка rs1.LockType = adLockReadOnly, но если ее добавить эксель выдает ошибку "Аргументы имеют неверный тип". В отладчике adLockReadOnly = Empty. Код этот нашел здесь на форуме...
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Ааап! Никто не подскажет чтоли?
Есть у меня два файла xls, первый делает запрос ко второму файлу через adodb. Второй файл лежит в сети.
Все хорошо работает пока кто-нибудь с другого компьютера не откроет второй файл, вот тогда и начинаются странности. Вместо простого получения данных из второго файла при запросе он почему то открывается (появляется окно экселя с этим вторым файлом) и все повисает.

Код запроса ко второму файлу:
Код: Выделить всё
Dim conn1
Dim rs1
Dim str_conn As String
Dim sSQL1 As String
Set conn1 = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
str_conn = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + gNomFileName + ";" _
& "Extended Properties=""Excel 8.0;HDR=Yes"";"
On Error Resume Next
conn1.Open str_conn
On Error GoTo 0
If conn1.State <> 1 Then
MsgBox "Не удалось подключиться к файлу справочника номенклатуры!"
Exit Sub
End If
rs1.ActiveConnection = conn1
Диапазон = gNomSheetName & "$" & Chr(64 + gNomArticulColumn) & gNomStartRow - 1 & ":" & Chr(64 + gNomArticulColumn + 1) & "10000"
sSQL1 = "SELECT * From [" + Диапазон + "] as Articul"
With rs1
.CursorType = adOpenStatic
'.LockType = adLockReadOnly
End With
Set rs1 = conn1.Execute(sSQL1)
Do While rs1.EOF = False
Так же подозреваю что может помочь строка rs1.LockType = adLockReadOnly, но если ее добавить эксель выдает ошибку "Аргументы имеют неверный тип". В отладчике adLockReadOnly = Empty. Код этот нашел здесь на форуме...
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Ааап! Никто не подскажет чтоли?
