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

 

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

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

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

ник: Rein
Sub ImportFromExcel()
Dim objExl As Object, i As Integer
Dim d, pth, Path
Dim rst As Recordset, rst2 As Recordset

Set rst = CurrentDb.OpenRecordset("stoimost2")
Set rst2 = CurrentDb.OpenRecordset("qMaxDate")

Path = "C:\Fonds\vtb\"
pth = Path & "*.xls"
d = Dir(pth)

Do While d <> ""
    Set objExl = GetObject(Path & d)
    objExl.Parent.Windows(1).Visible = True
    i = 1
    'MsgBox objExl.Name
    Do While objExl.Application.Cells(3 + i, 2) <> rst2!MaxDate
        rst.AddNew
        rst!Код = CInt(Left(objExl.Name, 2))
        rst!Дата = objExl.Application.Cells(3 + i, 2)
        rst!Сумма1 = objExl.Application.Cells(3 + i, 3)
        rst!Сумма2 = objExl.Application.Cells(3 + i, 4)
        rst.Update
        'MsgBox objExl.Application.Cells(3 + i, 3)
        i = i + 1
    Loop
    d = Dir
    'objExl.Application.Quit
    Set objExl = Nothing
Loop
End Sub


подробнее:
импортируются только те записи из десятка excel файлов, которых нет в таблице stoimost2. Запрос qMaxDate выбирает последнию дату, потом сравнивается с датой в excel файле, если нет такой даты то идет добавление в таблицу stoimost2.

проблема:
GetObject(Path & d) все работает прекрасно, перебирает каждый xls файл в каталоге. Выборка и добавление нужных записей по "Дата" также работает прекрасно. Выбирает именно те записи которые нужны. НО происходит следующее:
-начало обработки 1-го xls в каталоге. Правильно.
-выборка записей по дате. Правильно
-добавление записей из 1-го xls. Правильно.
-конец обработки 1-го xls файла в каталоге. Правильно.

-начало обработки 2-го xls в каталоге. Правильно.
-выборка записей по дате. Правильно
-добавление записей из 1-го xls. Неправильно
-конец обработки 2-го xls файла в каталоге. Правильно.

я добавлял строчку objExl.Application.Quit, с ней ВСЁ становится правильно. Но выдает ошибку потому что при закрытии xls файла, Excel выдает сообщение "Сохранять файл. Да/Нет". Насколько я понял все проблемы отсюда. Что сделать можно?


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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