Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: 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
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.