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

 

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

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

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

ник: Infog
Добрый вечер ув. форумчане.
Есть надобность экспортировать данные из файла xls в таблицу access.
Есть программа написана в Access 2003 с использованием форм и VBA.
Программа работает, данные через формы вносятся в одну единственную таблицу (contract).
Но нужно организовать экспорт данных из таблицы Exel. В моем случае таблица имеет несколько листов, но экспорт нужен из одного листа.
В нем необходимые данные начинаются с 5й строчки (1-4 описание столбцов), и 35 столбцов. Некоторые ячейки могут быть пустыми, это не важно.

Есть код который должен делать импорт, но он почему-то не работает. Я в VBA никаких знаний не имею, поэтому взываю вас к помощи. Вопрос жизни и смерти :)

Форма для выбора файла

Private Sub btnExcel_Click()
   Dim dlg As FileDialog
   Set dlg = FileDialog(msoFileDialogFilePicker)
   dlg.Filters.Clear
   dlg.Filters.Add "Òàáëèö³ Excel", "*.xls"
   dlg.AllowMultiSelect = False
   On Error Resume Next
   On Error GoTo 0
      dlg.ButtonName = "Çàâàíòàæåííÿ XLS ôàéëà"
      If dlg.Show Then
        edtFileXLS = Trim(dlg.SelectedItems.Item(1))
      Else
        MsgBox "Ôàéë íå âûáðàí"
    End If

End Sub


Код импортера

Private Sub btnImpExcel_Click()
   Dim xmlFile As String
   Dim InsCommandText As String
   Dim CntRow As String
   xmlFile = edtFileXLS
   CntRow = "A4:AI" & edtCntRow
   On Error GoTo ImpExlErr
   'On Error Resume Next ' Âûêëþ÷åíèå îáðàáîò÷èêà îøèáîê.
    DoCmd.DeleteObject acTable, "ExelTable"
    err = 0 ' Î÷èñòêà êîäà îøèáêè.
    DoCmd.TransferSpreadsheet acImport, 8, "ExelTable", xmlFile, True, CntRow  '"A4:AI6"
    'DoCmd.RunSQL "DELETE FROM ExelTable"
    InsCommandText = "INSERT INTO [contract](DECL_NUM,DECL_DATE,APP_NUMBER,CON_REG_DATE,EXECUTE_WORK_DATE" + _
    ",OWNER_NAME,OWNER_FIRST_NAME,OWNER_PATRONYMIC,OWNER_ID_CODE" + _
    ",KOATUU,ZONE,QUARTER,CAD_NUMBER, AREA, PURPOSE_CODE, PZ_ORGAN,PZ_NUMBER,PZ_DATE" + _
    ",DEV_REG_NUM,DEV_REG_DATE,TD_PERFORMER,DEV_EW_AKT_DATE" + _
    ",GA_SERIES,GA_NUMBER,GA_REG_DATE,GA_REG_NUM" + _
    ",REG_RETURN_DATE,REG_RETURN_NOTE) " + _
    "SELECT F1 & F2 as DECL_NUMBER,F3, F17,F18,F19, F4,F5,F6,F7" + _
    ",F8,F9,F10,F11, F12, F13, F14,F16,F15" + _
    ",F20,F21,F22,F23" + _
    ",F26,F27,F31,F32, F33,F34 " + _
    "FROM [ExelTable]"
        
     CurrentDb.Execute InsCommandText
ImpExlErr:
    err.Clear

End Sub


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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