Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: user12345
Хотелось бы узнать ваше мнение об этом методе экспорта данных


Public Sub OpenEXCEL(strPathofTmpl As String, strNameofTblQry As String, iRow As Integer, iCol As Integer, iNSH As Integer, vrNofSh As Variant)
'strPathofTmpl - имя вместе с путем файла шаблона
'strNameofTblQry - имя сохраненного запроса
'iRow - начальная строка экспорта в файле шаблона
'iCol - начальныйстолбец экспорта в файле шаблона
'iNSH - номер листа книги в файле шаблона
'vrNofSh - новое имя листа книги шаблона, если null - имя остается старым

Dim db As DAO.Database
Dim rst As DAO.Recordset

Dim xlAPP As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim rng As Range

Dim vArr() As Variant

Set db = CurrentDb()
Set rst = db.OpenRecordset(strNameofTblQry)
rst.MoveLast: rst.MoveFirst
vArr = rst.GetRows(rst.RecordCount)

Dim i As Integer, j As Integer
For i = 0 To UBound(vArr, 1)
For j = 0 To UBound(vArr, 2)
vArr(i, j) = Nz(vArr(i, j), Empty)
Next j
Next i


Set xlAPP = New Excel.Application
xlAPP.Visible = True
Set xlBook = xlAPP.Workbooks.Open(strPathofTmpl)
Set xlSheet = xlBook.Worksheets(iNSH)
If Not IsNull(vrNofSh) Then xlSheet.Name = CStr(vrNofSh) 'str$(Date)
Set rng = xlSheet.Cells(iRow, iCol)
Set rng = rng.Resize(UBound(vArr, 2) + 1, UBound(vArr, 1) + 1)
rng.Formula = xlAPP.WorksheetFunction.Transpose(vArr)

rst.Close
Set rst = Nothing
Set db = Nothing
Set rng = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlAPP = Nothing

End Sub


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.