Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Своя функция в Exel / 2 сообщений из 2, страница 1 из 1
20.11.2006, 15:43:32
    #34141324
Smiler™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Своя функция в Exel
Пишу в Exel-e функцию:

Public Function q() As String
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
'Dim mystr2 As String
Dim mQuery As String
mystr2 = ""
'Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & _
"\" & ThisWorkbook.Name & ";Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With
mQuery = "select [Город] from [Лист1$] where [код]=23 group by [Город]"
rst.Open mQuery, cn
Do While rst.EOF = False
If rst.RecordCount > 1 Then
mystr2 = mystr2 & rst.Fields(0) & "-"
Else
mystr2 = mystr2 & rst.Fields(0)
End If
If rst.EOF = False Then
rst.MoveNext
End If
Loop
rst.Close
cn.Close
' MsgBox mystr2
q = mystr2
End Function

MsgBox mystr2 -выводит сообщение с правильнойй строкой (два раза почему-то), сама же функция возвращает 0.
Не подскажете что не так делаю?
...
Рейтинг: 0 / 0
20.11.2006, 16:45:09
    #34141579
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Своя функция в Exel
Senin Viktor2. Обращаться через ADO в открытый файла екцеля нельзя - происходит утечка памяти. Эта ошибка описана в MSDN "BUG: Memory leak occurs when you query an open Excel worksheet by using ActiveX Data Objects (ADO)" #319998
Код: plaintext
When you retrieve a Microsoft ActiveX Data Objects (ADO) Recordset from an Excel worksheet that is open in Excel, a memory leak occurs in the Excel process. Repeated queries may eventually cause Excel to run out of memory and raise an error, or cause Excel to stop responding. 
Выход: юзать просто файл (не открытый). Т.е. например, скопировать данные в темп-файл, закрыть его и уже юзать ADO
Recordset
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Своя функция в Exel / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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