powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Мало памяти при выводе в Excell
25 сообщений из 28, страница 1 из 2
Мало памяти при выводе в Excell
    #32318950
В.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывожу отчет из Access в Excell по стандартным алгоритмам, взятым с литературы и с форума. Первый раз все отрабатывает нормально, затем при формировании отчета Excell выдает сообщение "Мало памяти", или "Недостаточно системных ресурсов для полного вывода на экран". Отчеты не большие, строчек под 300, причем формирует довольно медленно. Затем машину приходится перезагружать, и снова можно сформировать один отчет в excell.
Система: access 97, excell 97, Windows 98 SE с 32 ОЗУ.
А так такая хорошая идея была, формировать отчеты по базе в excell, потому что в них много столбцов, постоянно требуют то добавить, то удалить столбцы.
Даже не представляю как такой отчет можно нарисовать в access-овском генераторе отчетов.

Получается что Excell не освобождает после себя память.
Объекты чистить не забываю, Nothing в нужных местах для объектов ставлю, recordset-ы тоже закрываю и чищу.

Сталкивался ли кто с подобной проблемой и есть ли из нее выход? Перерыл кучу информации и так и не понял, что я упустил из внимания.

За основу взял заготовку автора с форума:
(конечно еще используются и другие объекты)

Dim xlApp As New Excel.Application ??? может нужно сделать без NEW
'откроем шаблон
xlApp.Workbooks.Open "D:\Сводка\SVODKA.XLS"
xlApp.Visible = True 'вывод листа на экран
'сводка по производству за сутки
xlApp.Worksheets(1).Select
СводкаАнгл xlApp.Worksheets(1) ' в этой функции я заполняю листик данными из рекордов
'сохранение копии книги в папке C:\Сводка\Дискета
xlApp.Workbooks("SVODKA").SaveCopyAs "D:\Сводка\Дискета\SVODKA-" & Day(КакаяДата()) & "-" & Month(КакаяДата())& ".xls"
xlApp.Workbooks("SVODKA").Saved = True ' это чтоб не переспрашивала при закрытии
xlApp.Quit
Set xlApp = Nothing 'просто подстраховался
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32318972
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После того как
Set xlApp = Nothing

В Task Manager Excel висит?
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32318976
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Получается что Excell не освобождает после себя память.

Попробуй явно определять книгу и листы книги

Dim wb as Excell.WorkBook

set wb=xlApp.Workbooks.Open "D:\Сводка\SVODKA.XLS"
...
wb.close: set wb=nothing

По такому же алгоритму Worksheet

==
Сам екцель выгружается? Что с ресурсами?
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32318978
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ответа пока у меня нет, но:

1. Без New нельзя, т.к. объект нужно инциализировать.

2. Если сделать Ctrl+Alt+Del и увидеть список аппликаций, то не появляется ли там Excel несколько раз? У меня когда-то было именно так, но я не помню, поборол ли я это.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32318990
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
As New уж точно надо убить
Простейший тест:
Код: plaintext
1.
2.
Dim tmp As New Collection
Set tmp = Nothing
Debug.Print tmp Is Nothing

дает False :)
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32318993
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в функции СводкаАнгл как сделано обращение к Excel?
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319006
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, откуда ты все знаешь???

Код: plaintext
1.
2.
3.
Dim tmp As Collection
Set tmp = New Collection
Set tmp = Nothing
Debug.Print tmp Is Nothing

дает True. :^)))
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319023
В.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу листинг (конечно не для того чтобы кто то разбирался в такой большой простыне, но может есть грубые ошибки, которые сразу бросаются в глаза).

---------------------------------------------------------------

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
Option Compare Database
Option Explicit

Dim ws As Excel.Worksheet
Dim dbs As Database, rst As Recordset
Dim strSql As String, sDolj As String

Dim nRow As Integer, nRowP As Integer, nCol As Integer
Dim sum1 As Currency, sum2 As Currency, sum3 As Currency
Dim prev_podr As String

' для итогов по дому-интернату
Dim d_kolvo As Currency, d_oklad As Currency, d_sl25 As Currency, d_itok As Currency
Dim d_ou15 As Currency, d_ou25 As Currency, d_ou30 As Currency, d_sum1 As Currency
Dim d_ns15 As Currency, d_ns20 As Currency, d_ns30 As Currency, d_ns45 As Currency
Dim d_ns60 As Currency, d_kv10 As Currency, d_kv25 As Currency, d_nd25 As Currency
Dim d_rk15 As Currency, d_rk20 As Currency, d_sum2 As Currency, d_sum3 As Currency

' для итогов по подразделению
Dim p_kolvo As Currency, p_oklad As Currency, p_sl25 As Currency, p_itok As Currency
Dim p_ou15 As Currency, p_ou25 As Currency, p_ou30 As Currency, p_sum1 As Currency
Dim p_ns15 As Currency, p_ns20 As Currency, p_ns30 As Currency, p_ns45 As Currency
Dim p_ns60 As Currency, p_kv10 As Currency, p_kv25 As Currency, p_nd25 As Currency
Dim p_rk15 As Currency, p_rk20 As Currency, p_sum2 As Currency, p_sum3 As Currency

'***
'
'***
Sub Otchet01(kodint As Integer)
Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim sD As String, sD2 As String, nm As Integer
Dim cur_dir As String, cur_dir2 As String, pos As Integer
Dim otc_name As String

'выделение каталога где расположены базы
cur_dir = CurrentDb.Name
cur_dir2 =  ""
Do While True
  pos = InStr(cur_dir, " \ ")
  If pos = 0  Then Exit Do
  cur_dir2 = cur_dir2 & Left$(cur_dir, pos)
  cur_dir = Mid$(cur_dir, pos +  1 )
Loop
cur_dir = cur_dir2

Set dbs = CurrentDb
' раньше сортировка была kpodr,razr desc
' не забывать про код параграфа
strSql = "select kpodr,kdolj,razr,shtDolj.vakant,tarif,kolvo,oklad,sl25,ou15,ou25,ou30, " & _
         " ns15,ns20,ns30,ns45,ns60,kv10,kv25,nd25,rk15,rk20,doljnos.naim from shtDolj  " & _
         "  inner join doljnos on shtDolj.kdolj=doljnos.kod  " & _
         " where kparg= " & GetParg() & "  and kdint= " & kodint & _
         "  order by kpodr,doljnos.naim,razr desc "
Set rst = dbs.OpenRecordset(strSql, dbOpenDynaset)

'откроем шаблон
Set wb = xl.Workbooks.Open(cur_dir & "ShtSbl01.XLS")
Set ws = wb.Worksheets(1)

xl.Visible = True 'вывод листа на экран

xl.Worksheets(1 ).Select

sD = Date
sD2 = "на  " & Mid(sD, 1 ,  2 ) & "     " & _
       MonthName2(Val(Mid(sD, 4 ,  2 ))) & "     20  " & Mid(sD, 7 ) & " года "
'ws.Cells(12, 18) = sD2

ws.Cells(11, 4) = DLookup("naim", "internat", "kod=" & kodint)
ws.Cells(11, 4).Font.Size = 14
ws.Cells(11, 4).Font.Bold = True

nm = DLookup("mest", "internat", "kod=" & kodint)
If nm > 0 Then
  ws.Cells(11, 2) = nm
  ws.Cells(11, 2).Font.Bold = True
  ws.Cells(11, 2).Font.Size = 13
End If

nRowP = 19
nRow = nRowP + 1
nCol = 0

prev_podr = "??"
If Not rst.EOF Then

InitD
InitP
Do Until rst.EOF
  If prev_podr <> rst!kpodr And prev_podr <> "??" Then
    ItgP
    InitP
    nRowP = nRow + 1
    nRow = nRowP + 1
  End If
  prev_podr = rst!kpodr
  DataR1
  rst.MoveNext
  nRow = nRow + 1
Loop
' вывод для последней группы
ItgP
ItgD

End If

rst.Close
Set dbs = Nothing

'сводка по производству за сутки
'СводкаАнгл xlApp.Worksheets(1 ) ' в этой функции я заполняю листик данными из рекордов
'сохранение копии книги в папке C:\Сводка\Дискета
'xlApp.Workbooks("SVODKA").SaveCopyAs "D:\Сводка\Дискета\SVODKA-" & Day(КакаяДата()) & "-" & Month(КакаяДата()) & ".xls"
'xlApp.Workbooks("SVODKA ").Saved = True ' это чтоб не переспрашивала при закрытии

'wb.Application.ActivePrinter = " HP LaserJet 4V (\\Aminova\hp) "
otc_name = cur_dir & " shtdi " & kodint
Select Case GetParg()
Case 8 
  otc_name = otc_name & "re "
Case 9 
  otc_name = otc_name & "vp "
Case 10 
  otc_name = otc_name & "po "
End Select
otc_name = otc_name & " .xls "
wb.SaveAs otc_name

'wb.SaveCopyAs "С:\Мои документы\shtat.xls"
'xlApp.Workbooks(1 ).Saved = True ' это чтоб не переспрашивала при закрытии

'xlApp.Quit
Set xl = Nothing 'просто подстраховался
Set wb = Nothing
Set ws = Nothing
End Sub

'***
' Обнуление сумм для накопления итогов по дому-интернату
'***
Private Sub InitD()

d_kolvo =  0 
d_oklad =  0 
d_sl25 =  0 
d_itok =  0 
d_ou15 =  0 
d_ou25 =  0 
d_ou30 =  0 
d_sum1 =  0 
d_ns15 =  0 
d_ns20 =  0 
d_ns30 =  0 
d_ns45 =  0 
d_ns60 =  0 
d_kv10 =  0 
d_kv25 =  0 
d_nd25 =  0 
d_rk15 =  0 
d_rk20 =  0 
d_sum2 =  0 
d_sum3 =  0 
End Sub

'***
' Обнуление сумм для накопления итогов по подразделению
'***
Private Sub InitP()

p_kolvo = 0
p_oklad = 0
p_sl25 = 0
p_itok = 0
p_ou15 = 0
p_ou25 = 0
p_ou30 = 0
p_sum1 = 0
p_ns15 = 0
p_ns20 = 0
p_ns30 = 0
p_ns45 = 0
p_ns60 = 0
p_kv10 = 0
p_kv25 = 0
p_nd25 = 0
p_rk15 = 0
p_rk20 = 0
p_sum2 = 0
p_sum3 = 0
End Sub

'***
' Вывод строки отчета по одной должности
'***
Private Sub DataR1()
Dim itok As Currency

'ws.Cells(nRow, nCol + 1) = "1"

sDolj = DLookup("naim", "doljnos", "kod=" & rst!kdolj)
ws.Cells(nRow, nCol + 1) = sDolj
ws.Cells(nRow, nCol + 1).Font.Size = 14

If rst!razr > 0 Then
  ws.Cells(nRow, nCol + 2) = rst!razr
  ws.Cells(nRow, nCol + 2).HorizontalAlignment = xlCenter
  ws.Cells(nRow, nCol + 2).Font.Size = 13
End If

If Not IsNull(rst!vakant) Then
  If Not Trim(rst!vakant) = "" Then
    ws.Cells(nRow, nCol + 2) = "'" & rst!vakant ' чтобы не преобразовывало в дату
    ws.Cells(nRow, nCol + 2).HorizontalAlignment = xlCenter
    ws.Cells(nRow, nCol + 2).Font.Size = 13
  End If
End If

If rst!tarif > 0 Then
  ws.Cells(nRow, nCol + 3) = rst!tarif
  ws.Cells(nRow, nCol + 3).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 3).Font.Size = 13
End If

If rst!kolvo > 0 Then
  ws.Cells(nRow, nCol + 4) = rst!kolvo
  ws.Cells(nRow, nCol + 4).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 4).Font.Size = 13
  p_kolvo = p_kolvo + rst!kolvo
  d_kolvo = d_kolvo + rst!kolvo
End If

If rst!oklad > 0 Then
  ws.Cells(nRow, nCol + 5) = rst!oklad
  ws.Cells(nRow, nCol + 5).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 5).Font.Size = 13
  p_oklad = p_oklad + rst!oklad
  d_oklad = d_oklad + rst!oklad
End If

If rst!sl25 > 0 Then
  ws.Cells(nRow, nCol + 6) = rst!sl25
  ws.Cells(nRow, nCol + 6).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 6).Font.Size = 13
  p_sl25 = p_sl25 + rst!sl25
  d_sl25 = d_sl25 + rst!sl25
End If

itok = 0
itok = rst!oklad + rst!sl25
If itok > 0 Then
  ws.Cells(nRow, nCol + 7) = itok
  ws.Cells(nRow, nCol + 7).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 7).Font.Size = 13
  p_itok = p_itok + itok
  d_itok = d_itok + itok
End If

If rst!ou15 > 0 Then
  ws.Cells(nRow, nCol + 8) = rst!ou15
  ws.Cells(nRow, nCol + 8).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 8).Font.Size = 13
  p_ou15 = p_ou15 + rst!ou15
  d_ou15 = d_ou15 + rst!ou15
End If

If rst!ou25 > 0 Then
  ws.Cells(nRow, nCol + 9) = rst!ou25
  ws.Cells(nRow, nCol + 9).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 9).Font.Size = 13
  p_ou25 = p_ou25 + rst!ou25
  d_ou25 = d_ou25 + rst!ou25
End If

If rst!ou30 > 0 Then
  ws.Cells(nRow, nCol + 10) = rst!ou30
  ws.Cells(nRow, nCol + 10).NumberFormat = "0.00"
  ws.Cells(nRow, nCol + 10).Font.Size = 13
  p_ou30 = p_ou30 + rst!ou30
  d_ou30 = d_ou30 + rst!ou30
End If

sum1 = rst!oklad + rst!sl25 + rst!ou15 + rst!ou25 + rst!ou30
If sum1 > 0 Then
  'ws.Cells(nRow, nCol +  11 ) = sum1
  'ws.Cells(nRow, nCol + 11).NumberFormat = "0.00"
  'ws.Cells(nRow, nCol +  11 ).Font.Size =  13 
  p_sum1 = p_sum1 + sum1
  d_sum1 = d_sum1 + sum1
End If

If rst!ns15 >  0  Then
  ws.Cells(nRow, nCol +  11 ) = rst!ns15
  ws.Cells(nRow, nCol +  11 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  11 ).Font.Size =  13 
  p_ns15 = p_ns15 + rst!ns15
  d_ns15 = d_ns15 + rst!ns15
End If

If rst!ns20 >  0  Then
  ws.Cells(nRow, nCol +  12 ) = rst!ns20
  ws.Cells(nRow, nCol +  12 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  12 ).Font.Size =  13 
  p_ns20 = p_ns20 + rst!ns20
  d_ns20 = d_ns20 + rst!ns20
End If

If rst!ns30 >  0  Then
  ws.Cells(nRow, nCol +  13 ) = rst!ns30
  ws.Cells(nRow, nCol +  13 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  13 ).Font.Size =  13 
  p_ns30 = p_ns30 + rst!ns30
  d_ns30 = d_ns30 + rst!ns30
End If

If rst!ns45 >  0  Then
  ws.Cells(nRow, nCol +  14 ) = rst!ns45
  ws.Cells(nRow, nCol +  14 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  14 ).Font.Size =  13 
  p_ns45 = p_ns45 + rst!ns45
  d_ns45 = d_ns45 + rst!ns45
End If

If rst!ns60 >  0  Then
  ws.Cells(nRow, nCol +  15 ) = rst!ns60
  ws.Cells(nRow, nCol +  15 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  15 ).Font.Size =  13 
  p_ns60 = p_ns60 + rst!ns60
  d_ns60 = d_ns60 + rst!ns60
End If

If rst!kv10 >  0  Then
  ws.Cells(nRow, nCol +  16 ) = rst!kv10
  ws.Cells(nRow, nCol +  16 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  16 ).Font.Size =  13 
  p_kv10 = p_kv10 + rst!kv10
  d_kv10 = d_kv10 + rst!kv10
End If

If rst!kv25 >  0  Then
  ws.Cells(nRow, nCol +  17 ) = rst!kv25
  ws.Cells(nRow, nCol +  17 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  17 ).Font.Size =  13 
  p_kv25 = p_kv25 + rst!kv25
  d_kv25 = d_kv25 + rst!kv25
End If

If rst!nd25 >  0  Then
  ws.Cells(nRow, nCol +  18 ) = rst!nd25
  ws.Cells(nRow, nCol +  18 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  18 ).Font.Size =  13 
  p_nd25 = p_nd25 + rst!nd25
  d_nd25 = d_nd25 + rst!nd25
End If

If rst!rk15 >  0  Then
  ws.Cells(nRow, nCol +  19 ) = rst!rk15
  ws.Cells(nRow, nCol +  19 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  19 ).Font.Size =  13 
  p_rk15 = p_rk15 + rst!rk15
  d_rk15 = d_rk15 + rst!rk15
End If

If rst!rk20 >  0  Then
  ws.Cells(nRow, nCol +  20 ) = rst!rk20
  ws.Cells(nRow, nCol +  20 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  20 ).Font.Size =  13 
  p_rk20 = p_rk20 + rst!rk20
  d_rk20 = d_rk20 + rst!rk20
End If

sum2 = rst!ou15 + rst!ou25 + rst!ou30 + _
       rst!ns15 + rst!ns20 + rst!ns30 + rst!ns45 + rst!ns60 + _
       rst!kv10 + rst!kv25 + rst!nd25 + rst!rk15 + rst!rk20
If sum2 >  0  Then
  ws.Cells(nRow, nCol +  21 ) = sum2
  ws.Cells(nRow, nCol +  21 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  21 ).Font.Size =  13 
  p_sum2 = p_sum2 + sum2
  d_sum2 = d_sum2 + sum2
End If

sum3 = itok + sum2
If sum3 >  0  Then
  ws.Cells(nRow, nCol +  22 ) = sum3
  ws.Cells(nRow, nCol +  22 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRow, nCol +  22 ).Font.Size =  13 
  p_sum3 = p_sum3 + sum3
  d_sum3 = d_sum3 + sum3
End If
End Sub ' DataR1()

'***
' Итоги по дому-интернату
'***
Private Sub ItgD()
Dim nRowP As Integer, nCol As Integer

nRowP =  13 
nCol =  0 

If d_kolvo >  0  Then
  ws.Cells( 3 ,  15 ) = d_kolvo
  ws.Cells( 3 ,  15 ).NumberFormat =  "0 . 00 "
  ws.Cells( 3 ,  15 ).Font.Bold = True
  ws.Cells( 3 ,  15 ).Font.Size =  13 
End If

If d_sum3 >  0  Then
  ws.Cells( 4 ,  15 ) = d_sum3
  ws.Cells( 4 ,  15 ).NumberFormat =  "0 . 00 "
  ws.Cells( 4 ,  15 ).Font.Bold = True
  ws.Cells( 4 ,  15 ).Font.Size =  13 
End If

If d_kolvo >  0  Then
  ws.Cells(nRowP, nCol +  4 ) = d_kolvo
  ws.Cells(nRowP, nCol +  4 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  4 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  4 ).Font.Size =  13 
End If

If d_oklad >  0  Then
  ws.Cells(nRowP, nCol +  5 ) = d_oklad
  ws.Cells(nRowP, nCol +  5 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  5 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  5 ).Font.Size =  13 
End If

If d_sl25 >  0  Then
  ws.Cells(nRowP, nCol +  6 ) = d_sl25
  ws.Cells(nRowP, nCol +  6 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  6 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  6 ).Font.Size =  13 
End If

If d_itok >  0  Then
  ws.Cells(nRowP, nCol +  7 ) = d_itok
  ws.Cells(nRowP, nCol +  7 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  7 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  7 ).Font.Size =  13 
End If

If d_ou15 >  0  Then
  ws.Cells(nRowP, nCol +  8 ) = d_ou15
  ws.Cells(nRowP, nCol +  8 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  8 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  8 ).Font.Size =  13 
End If

If d_ou25 >  0  Then
  ws.Cells(nRowP, nCol +  9 ) = d_ou25
  ws.Cells(nRowP, nCol +  9 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  9 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  9 ).Font.Size =  13 
End If

If d_ou30 >  0  Then
  ws.Cells(nRowP, nCol +  10 ) = d_ou30
  ws.Cells(nRowP, nCol +  10 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  10 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  10 ).Font.Size =  13 
End If

If d_sum1 >  0  Then
  'ws.Cells(nRowP, nCol + 11) = d_sum1
  'ws.Cells(nRowP, nCol +  11 ).NumberFormat =  "0 . 00 "
  'ws.Cells(nRowP, nCol + 11).Font.Bold = True
  'ws.Cells(nRowP, nCol +  11 ).Font.Size =  13 
End If

If d_ns15 >  0  Then
  ws.Cells(nRowP, nCol +  11 ) = d_ns15
  ws.Cells(nRowP, nCol +  11 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  11 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  11 ).Font.Size =  13 
End If

If d_ns20 >  0  Then
  ws.Cells(nRowP, nCol +  12 ) = d_ns20
  ws.Cells(nRowP, nCol +  12 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  12 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  12 ).Font.Size =  13 
End If

If d_ns30 >  0  Then
  ws.Cells(nRowP, nCol +  13 ) = d_ns30
  ws.Cells(nRowP, nCol +  13 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  13 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  13 ).Font.Size =  13 
End If

If d_ns45 >  0  Then
  ws.Cells(nRowP, nCol +  14 ) = d_ns45
  ws.Cells(nRowP, nCol +  14 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  14 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  14 ).Font.Size =  13 
End If

If d_ns60 >  0  Then
  ws.Cells(nRowP, nCol +  15 ) = d_ns60
  ws.Cells(nRowP, nCol +  15 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  15 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  15 ).Font.Size =  13 
End If

If d_kv10 >  0  Then
  ws.Cells(nRowP, nCol +  16 ) = d_kv10
  ws.Cells(nRowP, nCol +  16 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  16 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  16 ).Font.Size =  13 
End If

If d_kv25 >  0  Then
  ws.Cells(nRowP, nCol +  17 ) = d_kv25
  ws.Cells(nRowP, nCol +  17 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  17 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  17 ).Font.Size =  13 
End If

If d_nd25 >  0  Then
  ws.Cells(nRowP, nCol +  18 ) = d_nd25
  ws.Cells(nRowP, nCol +  18 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  18 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  18 ).Font.Size =  13 
End If

If d_rk15 >  0  Then
  ws.Cells(nRowP, nCol +  19 ) = d_rk15
  ws.Cells(nRowP, nCol +  19 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  19 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  19 ).Font.Size =  13 
End If

If d_rk20 >  0  Then
  ws.Cells(nRowP, nCol +  20 ) = d_rk20
  ws.Cells(nRowP, nCol +  20 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  20 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  20 ).Font.Size =  13 
End If

If d_sum2 >  0  Then
  ws.Cells(nRowP, nCol +  21 ) = d_sum2
  ws.Cells(nRowP, nCol +  21 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  21 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  21 ).Font.Size =  13 
End If

If d_sum3 >  0  Then
  ws.Cells(nRowP, nCol +  22 ) = d_sum3
  ws.Cells(nRowP, nCol +  22 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  22 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  22 ).Font.Size =  13 
End If
End Sub 'ItgD()


'***
' Итоги по подразделению
'***
Private Sub ItgP()
Dim sPodr As String

sPodr = DLookup( "naim" ,  "podrazd" ,  "kod="  &  """  " & prev_podr & "  """ )
ws.Cells(nRowP, nCol +  1 ) = sPodr
ws.Cells(nRowP, nCol +  1 ).Font.Bold = True
ws.Cells(nRowP, nCol +  1 ).Font.Size =  14 

If p_kolvo >  0  Then
  ws.Cells(nRowP, nCol +  4 ) = p_kolvo
  ws.Cells(nRowP, nCol +  4 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  4 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  4 ).Font.Size =  13 
End If

If p_oklad >  0  Then
  ws.Cells(nRowP, nCol +  5 ) = p_oklad
  ws.Cells(nRowP, nCol +  5 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  5 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  5 ).Font.Size =  13 
End If

If p_sl25 >  0  Then
  ws.Cells(nRowP, nCol +  6 ) = p_sl25
  ws.Cells(nRowP, nCol +  6 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  6 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  6 ).Font.Size =  13 
End If

If p_itok >  0  Then
  ws.Cells(nRowP, nCol +  7 ) = p_itok
  ws.Cells(nRowP, nCol +  7 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  7 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  7 ).Font.Size =  13 
End If

If p_ou15 >  0  Then
  ws.Cells(nRowP, nCol +  8 ) = p_ou15
  ws.Cells(nRowP, nCol +  8 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  8 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  8 ).Font.Size =  13 
End If

If p_ou25 >  0  Then
  ws.Cells(nRowP, nCol +  9 ) = p_ou25
  ws.Cells(nRowP, nCol +  9 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  9 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  9 ).Font.Size =  13 
End If

If p_ou30 >  0  Then
  ws.Cells(nRowP, nCol +  10 ) = p_ou30
  ws.Cells(nRowP, nCol +  10 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  10 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  10 ).Font.Size =  13 
End If

If p_sum1 >  0  Then
  'ws.Cells(nRowP, nCol + 11) = p_sum1
  'ws.Cells(nRowP, nCol +  11 ).NumberFormat =  "0 . 00 "
  'ws.Cells(nRowP, nCol + 11).Font.Bold = True
  'ws.Cells(nRowP, nCol +  11 ).Font.Size =  13 
End If

If p_ns15 >  0  Then
  ws.Cells(nRowP, nCol +  11 ) = p_ns15
  ws.Cells(nRowP, nCol +  11 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  11 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  11 ).Font.Size =  13 
End If

If p_ns20 >  0  Then
  ws.Cells(nRowP, nCol +  12 ) = p_ns20
  ws.Cells(nRowP, nCol +  12 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  12 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  12 ).Font.Size =  13 
End If

If p_ns30 >  0  Then
  ws.Cells(nRowP, nCol +  13 ) = p_ns30
  ws.Cells(nRowP, nCol +  13 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  13 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  13 ).Font.Size =  13 
End If

If p_ns45 >  0  Then
  ws.Cells(nRowP, nCol +  14 ) = p_ns45
  ws.Cells(nRowP, nCol +  14 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  14 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  14 ).Font.Size =  13 
End If

If p_ns60 >  0  Then
  ws.Cells(nRowP, nCol +  15 ) = p_ns60
  ws.Cells(nRowP, nCol +  15 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  15 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  15 ).Font.Size =  13 
End If

If p_kv10 >  0  Then
  ws.Cells(nRowP, nCol +  16 ) = p_kv10
  ws.Cells(nRowP, nCol +  16 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  16 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  16 ).Font.Size =  13 
End If

If p_kv25 >  0  Then
  ws.Cells(nRowP, nCol +  17 ) = p_kv25
  ws.Cells(nRowP, nCol +  17 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  17 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  17 ).Font.Size =  13 
End If

If p_nd25 >  0  Then
  ws.Cells(nRowP, nCol +  18 ) = p_nd25
  ws.Cells(nRowP, nCol +  18 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  18 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  18 ).Font.Size =  13 
End If

If p_rk15 >  0  Then
  ws.Cells(nRowP, nCol +  19 ) = p_rk15
  ws.Cells(nRowP, nCol +  19 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  19 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  19 ).Font.Size =  13 
End If

If p_rk20 >  0  Then
  ws.Cells(nRowP, nCol +  20 ) = p_rk20
  ws.Cells(nRowP, nCol +  20 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  20 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  20 ).Font.Size =  13 
End If

If p_sum2 >  0  Then
  ws.Cells(nRowP, nCol +  21 ) = p_sum2
  ws.Cells(nRowP, nCol +  21 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  21 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  21 ).Font.Size =  13 
End If

If p_sum3 >  0  Then
  ws.Cells(nRowP, nCol +  22 ) = p_sum3
  ws.Cells(nRowP, nCol +  22 ).NumberFormat =  "0 . 00 "
  ws.Cells(nRowP, nCol +  22 ).Font.Bold = True
  ws.Cells(nRowP, nCol +  22 ).Font.Size =  13 
End If
End Sub 'Itgp()
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319026
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я, конечно, молчу... Но почему такое количество одинаковых кусков кода сделано не циклом и не подпрограммой, а такое количество переменных не массивом?..
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319047
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж.

В.В. ты в следующий раз прогу офрмляй тегами [ src] [ /src ] (без пробелов) - гораздо наглядней.
(Пока писал, Саныч уже все исправил :)

ошибок нне нашел, зато есть некоторые рекомендации
- Не правильный порядок деинициализации объектов. Ты сперва убиваешь Екцель, а потом книгу, и лист. Надо наоборот
- нет деинициализации рекодсета (set rs=Nothing)
- xl.Visible = True делай после окончания расчета. Еще можно ScreenUpdating=False поставить. Должно работать несколько быстрей

==
Если екцель закрывать не надо - то надо сохранить книгу. Очистить все ссылки (лист-книга-екцел). Показать (xl.Visible = True)

===
И лучше не обращаться к ws.Cells напрямую, а через ws.range(Cells,Cells) - я одно время накушался глюков - мне хватило.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319051
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько ж оно выполняется? Вообще-то программировать через Cells (имхо) нужно стараться как можно реже. Это заведомый тормоз. Очень большой тормоз. Обычно такой код удается оптимизировать на порядки. Нужно стараться использовать более крупные объекты (Range, Columns и пр.).

По ячейкам выводить, в принципе, заманчиво, но это заведомо ложный путь. Range рулит! И Ёксель не будет так напрягаться.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319064
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А самое лучшее (если далее говорить про оптимальность) подготовить рекодсет - и бабахнуть его на лист через CopyFromRecodset (ws.Range("A1").CopyFromRecordset rs). Спсобов выброса инфы в екцел много - этот самый быстрый
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319073
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще вначале поставить

ws.Cells.NumberFormat = "0.00"
ws.Cells.Font.Size = 13

Т.е. задать сразу формат для всего листа.И убрать отовсюду эти строки, как минимум в 2 раза быстрее будет.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319081
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сенин Виктор
Не самый. Быстрее всего (вроде бы) - линк к эксельному листу и перелить данные одним SQL-запросом
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319086
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще wb ИМХО здесь лишняя.

Код: plaintext
1.
xl.Workbooks.Open(cur_dir &  "ShtSbl01.XLS" )
Set ws = xl.Workbooks( "ShtSbl01.XLS" ).Worksheets( 1 )


а дальше она и не используется
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319087
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу пардону, в таком виде скобки не нужны...
Код: plaintext
1.
xl.Workbooks.Open cur_dir &  "ShtSbl01.XLS" 
Set ws = xl.Workbooks( "ShtSbl01.XLS" ).Worksheets( 1 )
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319090
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет самый быстрый. Тут один чел делал исследование, насчет скорости работы выброски в Ёксель от количества записей. Штук 12 способов. Так вот конечные графики были нелинейны т.е. скорость того или иного метода зависит от данных (их количества). Поэтому этот вопрос не имеет однозначного ответа. Блин, жалко эта диаграмма куда-то подевалась...
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319096
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319106
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
>Не самый. Быстрее всего (вроде бы) - линк к эксельному листу и перелить данные одним SQL-запросом

Думаешь? Или знаешь? //просто в падлу тесты городить да проверять. Самый тормоз у меня это выброс да еще и последующее форматирование время сжирает - но там вроде оптимизировать далее некуда (хотя если подумать... :)
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319117
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На старой работе проверяли. Давно это было, так что зуб давать не буду.
А тесты городить тоже лениво.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319127
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor

Способы передачи данных из MS ACCESS в Excel
А это он и есть! То-то я смотрю код знакомый! Мы на работе до сих пор его юзаем!
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319130
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в течение выгрузки таким способом (через Jet'овский линк) даже эксель не запускается. Его, собственно, может на компутере и не быть. Так что это само по себе на время выгрузки должно хорошо влиять.
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32319167
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

Заинтриговал :)
Надоть по пробовать через линк. Правда ёкцель все-равно запускать прийдется (ну это уже мой частный случай)
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32320952
В.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стал использовать объект Range в Excel. Завел массив типа Variant, в котором формирую одну выводимую запись (элементы массива либо строки, либо Currency). Затем присваиваю объекту Range Excel'a. Скорость вывода многократно возросла. Но возникла проблема тип Currency из массива типа вариант выводится в Excell как строка вида $1,234.00 (сохраняется не число, а строковое значение). Преобразовать в нормальное числовое значение невозможно, например NumberFormat="0.00"
...
Рейтинг: 0 / 0
Мало памяти при выводе в Excell
    #32321356
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько не пытался, ничего похожего не происходит. Currency передается нормально, как число. Попробуй привести небольшой исходный код, в котором это происходит.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Мало памяти при выводе в Excell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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