|
|
|
Своя функция в Exel
|
|||
|---|---|---|---|
|
#18+
Пишу в 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. Не подскажете что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 15:43:32 |
|
||
|
Своя функция в Exel
|
|||
|---|---|---|---|
|
#18+
Senin Viktor2. Обращаться через ADO в открытый файла екцеля нельзя - происходит утечка памяти. Эта ошибка описана в MSDN "BUG: Memory leak occurs when you query an open Excel worksheet by using ActiveX Data Objects (ADO)" #319998 Код: plaintext Recordset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 16:45:09 |
|
||
|
|

start [/forum/topic.php?fid=61&tid=2183899]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 289ms |

| 0 / 0 |
