|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
стандартный код для работы с екселем из бейсика Dim apXls as Excel.Application Set apXls = CreateObject("Excel.Application") далее некие действия ................ потом apXls.Quit Set apXls = Nothing все ништяк ексель закрывается, только продолжает при этом висеть в памяти пока я не выйду из своего приложения. Что за ебть ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 15:32 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
мож так apXls.close после Set apXls = Nothing ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 01:21 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
Не не получается, пробовал ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 10:57 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
Гарантаровано что у тебя остались неубитые переменные. Если хочешь могу прислать пример процедуры кторая переносит Recordset в Exel. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 12:49 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
покажи код ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 01:20 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
Public Sub ImportVExcel(Dannie As Recordset, Optional MeForm As Form = Empty, Optional CloumsFormat As Integer, Optional strArrayCloumsName As Variant = Empty, Optional strSheetName As String = "", Optional recMyRecordset As Variant = Empty, Optional bulSUM As Boolean = False) On Error GoTo ErrHandler Dim i As Integer Dim e As Integer Dim Zagolovki(200) As String Dim strSheet As String Dim m As Integer Dim NumFields As Integer Dim intRecordCount As Integer Dim rec As New Recordset If Dannie.BOF And Dannie.EOF Then Msg "Импорт в Excel не выполнен, нет данных !" Exit Sub End If intRecordCount = Dannie.RecordCount If Not IsEmpty(MeForm) Then frmProces.Show vbModeless, MeForm frmProces.Label1.Caption = "Начинаем перенос данных" DoEvents End If If IsEmpty(strArrayCloumsName) Then For m = 0 To Dannie.Fields.Count - 1 Zagolovki(m) = Dannie.Fields(m).Name Next m Else For m = 0 To UBound(strArrayCloumsName) Zagolovki(m) = strArrayCloumsName(m) Next m End If Dim xlFail As Object Set xlFail = CreateObject("Excel.Application") xlFail.Workbooks.Add If intRecordCount < 50 Then xlFail.Visible = True strSheet = Replace(strSheetName, " ", "") strSheet = Replace(strSheet, "]", "") strSheet = Replace(strSheet, "[", "") strSheet = Replace(strSheet, "/", "") strSheet = Replace(strSheet, "\", "") strSheet = Replace(strSheet, "*", "") strSheet = Replace(strSheet, "?", "") strSheet = Left(strSheet, 31) With xlFail.ActiveSheet If Not strSheetName = "" Then .Name = strSheet For i = 1 To Dannie.Fields.Count .Cells(1, i).Value = Zagolovki(i - 1) .Cells(1, i).Font.Bold = True .Cells(1, i).BorderAround ColorIndex:=1, Weight:=3 .Cells(1, i).HorizontalAlignment = 3 .Cells(1, i).Interior.Color = RGB(32, 255, 100) Dannie.MoveFirst NumFields = intRecordCount + 1 For m = 2 To NumFields .Cells(m, i).Value = Dannie.Fields(i - 1).Value .Cells(m, i).BorderAround ColorIndex:=1, Weight:=2 Dannie.MoveNext Next m If Not IsEmpty(recMyRecordset) Then For e = 0 To UBound(recMyRecordset) Set rec = recMyRecordset(e) rec.MoveFirst If Not rec.BOF And Not rec.EOF Then For m = NumFields + 1 To rec.RecordCount + NumFields .Cells(m, i).Value = ПроверкаNull(rec.Fields(i - 1).Value) .Cells(m, i).BorderAround ColorIndex:=1, Weight:=2 .Cells(m, i).Interior.ColorIndex = 34 + (e * 2) rec.MoveNext Next m NumFields = NumFields + rec.RecordCount End If Next End If If bulSUM Then NumFields = NumFields + 1 Select Case i Case 1 .Cells(NumFields, i).Value = "SUM" Case Is > CloumsFormat .Cells(NumFields, i).FormulaR1C1 = "=SUM(R[-" & NumFields - 2 & "]C:R[-1]C)" '.Cells(NumFields + 1, i).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 " Case Else End Select .Cells(NumFields, i).BorderAround ColorIndex:=1, Weight:=2 .Cells(NumFields, i).Interior.Color = RGB(225, 210, 225) End If If i > CloumsFormat Then .Columns(i).NumberFormat = "#,##0_ ;[Red]-#,##0 " Else .Columns(i).NumberFormat = "@" End If .Columns(i).AutoFit If Not IsEmpty(MeForm) Then frmProces.Label1.Caption = "Перенесено " & CInt((100 / Dannie.Fields.Count) * i) & " %" DoEvents Next i End With If Not IsEmpty(MeForm) Then frmProces.Hide xlFail.Visible = True Set xlFail = Nothing Exit Sub ErrHandler: Set xlFail = Nothing If Not IsEmpty(MeForm) Then frmProces.Hide Msg "Импорт в Excel не выполнен, произошла ошибка!" & err.Description End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 09:32 |
|
Не выгружается из памяти Exel !!!
|
|||
---|---|---|---|
#18+
Private Sub Form_Load() Dim xlFail As Object Set xlFail = CreateObject("Excel.Application") xlFail.Workbooks.Add xlFail.Visible = True MsgBox "" xlFail.quit Set xlFail = Nothing End Sub работает однозначно, и все выгружается и в памяти не висит и при открытой форме у тебя же в первом примере вроде так и было? а вот во втором не так xlFail.Close ты ну никак не мог сделать, потому как нет такого метода у этого объекта. это я прогнал только Quit ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2002, 00:05 |
|
|
start [/forum/topic.php?fid=60&fpage=423&tid=2171575]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 176ms |
0 / 0 |