Евгений Григорьев Гость
|
Добавлено: Вт Июн 18 2002 09:52 Заголовок сообщения: Re: Экспорт данных из Access в Excel |
|
|
Помощь Аксесс предлагать не буду. Буду предлагать помощь Экселя . На самом деле, я почти серьезно - объекта Экселя и их програмирование описаны в помощи Экселя в отдельной ее части MS Excel VB reference. Для того, что бы пользовать эти объекты в Аксессе, надо активизировать ссылку на соответсвующую библиотеку (в Аксессе, в режиме редактирования программого модуля заходишь в меню Tools/Reference, и ставишь галочку, где надо.... надо отметить Microsoft Excel Objects Library). Дальше все очень просто - в программе открываещь файл Экселя, открываешь нужный RecordSet и работаешь с ними как угодно. Ниже пример... правда наоборот - импортируются данные из Экселя(файл, представляет собой бланк заказа, ранее созданный системой) в Акцесс.
Public Function LoadOrderFromExcelAngGetCustID(InStrPathFileName As String, POSFlag As Boolean) As Long
On Error GoTo Err_LoadFile Dim wb As Workbook Dim ws As Worksheet Dim numRows, i As Integer Dim LocalCustID As Long Dim ArtStr As String Set wb = Workbooks.Open(InStrPathFileName) Set ws = wb.Worksheets("Бланк заказа") If ws.Cells(2, 4) "IC.ORDERS.SYSTEM.1234512345" Then MsgBox "Этот файл не является бланком заказа созданным системой!", vbCritical + vbOKOnly, "ОШИБКА ЗАГРУЗКИ!!!" GoTo Exit_LoadFile End If
If ws.Cells(2, 5) "" Then Select Case POSFlag Case False If ws.Cells(2, 5) "Goods" Then MsgBox "Этот файл не является бланком заказа ТОВАРА!", vbCritical + vbOKOnly, "ОШИБКА ЗАГРУЗКИ!!!" GoTo Exit_LoadFile End If Case True If ws.Cells(2, 5) "POS" Then MsgBox "Этот файл не является бланком заказа РЕКЛАМНЫХ МАТЕРИАЛОВ!", vbCritical + vbOKOnly, "ОШИБКА ЗАГРУЗКИ!!!" GoTo Exit_LoadFile End If End Select End If LocalCustID = ws.Cells(2, 1).Value numRows = ws.UsedRange.Rows.Count Dim rst As Recordset Set rst = CurrentDb.OpenRecordset("LocalWareOut")
For i = 4 To numRows If ws.Cells(i, 2).Value "" Then If ws.Cells(i, 7).Value Then ArtStr = ws.Cells(i, 2).Value ArtStr = Mid(ArtStr, 6) If ArtStr = "B 0147100" Then ArtStr = "B0147100" rst.FindFirst "[Article] = '" & ArtStr & "'" If rst.NoMatch Then MsgBox "Артикул " & ArtStr & " не найден!", vbCritical + vbOKOnly, "ОШИБКА! Звоните 2024!" GoTo Exit_LoadFile Else rst.Edit rst![Pieces] = ws.Cells(i, 7).Value rst.Update End If End If End If Next
LoadOrderFromExcelAngGetCustID = LocalCustID Exit_LoadFile: rst.Close wb.Close Exit Function
Err_LoadFile: If Err = 9 Then MsgBox "Этот файл не явл ... |
|