Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88

Сверка имен PDF файлов с данными из Excel таблицы средствами Access VBA

31.05.2018, 11:51. Показов 2182. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день Уважаемые Форумчане,

Помогите пожалуста в следующей задаче:
1. Есть папка на сервере – в нее каждый день сохраняются путевые листы в формате PDF,
2. В имени файла указан номер путевого листа и дата,
3. ЗАДАЧА – каждое утро отправлять путевые листы с предидущего рабочего дня только для одного клиента.
4. К сожелению в имни файла виден только номер путевого листа, но не видно номера клиента,
5. ИДЕЯ – запускать каждое утро программу, которая бы генерировала Excel отчет с номерами путевок для одного клиента с предидущего рабочего дня; затем программа бы сравнивала имена PDF файлов (а конкретно – номера путевок в именах) с номерами путевок из Excel отчета; все PDF файлы с совпадающими номерами должны быть скопированны в отдельную папку; перед копированием нужно чтобы программа удаляла все содержимое папки с копирования от прошлого дня,
6. Сотрудник должен по утрам отправлять скопированные PDF файлы по почте...это конечно можно автоматизировать, но мне бы хотя бы рутину проверки и копирования осуществить...
7. ПРОСЬБА – помогите пожалуйста с реализацией. Может быть кто-то сталкивался с такой задачечей.

Заранее спасибо за поддержку!
Миниатюры
Сверка имен PDF файлов с данными из Excel таблицы средствами Access VBA  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2018, 11:51
Ответы с готовыми решениями:

Импорт таблиц из Excel в Access средствами VBA
Здравствуйте еще раз, продолжаю разбираться с MS Access и VBA. И появился еще один вопрос. Я организовал выгрузку всей базы в Excel файл по...

Отсортировать Excel от я до а по столбу из Access средствами VBA перед импортом
Доброго времени суток. Возникла проблемка. Необходимо сделать сортировку в Excel перед его импортом в Access. Access ругаеться на...

Импорт офисных файлов в таблицы Access через VBA (БД почтовых файлов)
помогите пожалуйста как работать с файлам в Access...основные поля и форму сделал, таблицу тоже, необходимо чтоб на форме была кнопка, при...

8
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
31.05.2018, 12:11
видите ли Дмитрий1905, слишком мало информации
тут нужно еще сам файлик excel вашим отчетом так как важна его структура имя ну и другие прелести
нужно чего вы уже сделали в аксе

сама по себе задача простая

ну и вопрос для чего нужно генерировать отчет в excel если этот отчет можно сделать в аксе
1
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,286
31.05.2018, 12:13
Цитата Сообщение от Дмитрий1905 Посмотреть сообщение
Сверка имен PDF файлов с данными из Excel таблицы средствами Access VBA - MS Access
Цитата Сообщение от Дмитрий1905 Посмотреть сообщение
7. ПРОСЬБА – помогите пожалуйста с реализацией. Может быть кто-то сталкивался с такой задачечей.
Отвечайте нам скорее через доку-главврача.
С уваженьем. Дата, подпись... Отвечайте нам, а
то,
Если вы не отзоветесь мы напишем в "Спортлото".

© В. С. Высоцкий


Причём тут Access...
1
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
31.05.2018, 12:44  [ТС]
snipe, пример таблички я подкрепил. Нужно два столбца - ГлавныйНомер и ПодчиненныйНомер. Вы правы, можно работать с запросом или таблицей в Access, я погорячился с Экселем...

Панург, Access нужен для определения данных - нужно из нашей базы данных (не Аксес) сначала вывести данные в таблицу или запрос - все номера путевок клиента 1234 за предидущий рабочий день.
Вложения
Тип файла: xlsx Tabelle.xlsx (7.9 Кб, 5 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
31.05.2018, 12:58
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Цитата Сообщение от Дмитрий1905 Посмотреть сообщение
нужно из нашей базы данных (не Аксес) сначала вывести данные в таблицу или запрос - все номера путевок клиента 1234 за предидущий рабочий день.
Ну так и что у вас не получается тут? - не понятно ничего.
Если работаем на MS Access, то пожалуйста начните уже что-то создавать сами, а там уже на форум с конкретикой.
3
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
15.06.2018, 16:14  [ТС]
Не получается проверить имена файлов в Папке1 по таблице из Access.
Есть цикл (см. код) который находит все файлы от вчерашней даты и копирует их в Папку2, НО необходимо эти файлы, перед тем как копировать, сверить с таблицей Access. Если имена сходятся то копировать, если нет, то пропустить.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Private Sub Befehl0_Click()
 
 
'ALLE Dateien aus dem Ordner fьr die 446471 LS lцschen*************************************************************************************************************************
 
Dim DirPath As String
Dim AllFilesMask As String
 
DirPath = "C:\Users\User\Desktop\LS\O2"
AllFilesMask = DirPath & "\*.*"
  
If Len(Dir(AllFilesMask)) > 0 Then
      Kill AllFilesMask
    End If
 
 
'Dateien im Ordner finden  -  mit dem Datum vom Vortag - alle Kunden in Sittensen, nicht nur 446471*************************************************************************************************************************
 
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rsT As DAO.Recordset
Dim DatVortag As String
Dim N As String
 
Dim strDirPathOLD As String
Dim strDirPathNEW As String
Dim strMaskSearch As String
Dim strFileName As String
 
Set db = CurrentDb
Set rs = db.OpenRecordset("0000_Tage3", dbOpenDynaset)
Set rsT = db.OpenRecordset("NM1", dbOpenDynaset)
DatVortag = rs!DT
 
strDirPathOLD = "C:\Users\User\Desktop\LS\O1\"
strDirPathNEW = "C:\Users\User\Desktop\LS\O2\"
strMaskSearch = "*" & DatVortag & "*.PDF*"
 
strFileName = Dir(strDirPathOLD & strMaskSearch)
 
'von dem was das Programm gefunden hat - nur 446471 nehmen und in den anderen Ordner rьberkopieren************************************************************************************************************
 
Do While strFileName <> ""
MsgBox strFileName
                                            With rsT
                                                            Do Until .EOF = True
                                                                        N = rsT!NM
                                                                                      If N = strFileName Then
                                                                                                   FileCopy strDirPathOLD & strFileName, strDirPathNEW & strFileName
                                                                                      Else
                                                                                      End If
                                                                                      
                                                              .MoveNext
                                                            Loop
                                            End With
    strFileName = Dir
    
Loop
End Sub
Цикл с rsT не работает. Выполняется только один раз - находит и копирует только один файл - а потом тишина.
Миниатюры
Сверка имен PDF файлов с данными из Excel таблицы средствами Access VBA  
Изображения
 
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.06.2018, 16:38
Лучший ответ Сообщение было отмечено Eugene-LS как решение

Решение

Вместо сканирования рекордсета задайте поиск по нему
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Do While strFileName <> ""
MsgBox strFileName
    With rsT
        .findfirst "NM='" & strFileName & "'"
        if NOT .nomatch then
              FileCopy strDirPathOLD & strFileName, strDirPathNEW & strFileName
        end if
    End With
    strFileName = Dir
    
Loop
3
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
15.06.2018, 16:43
Цитата Сообщение от Дмитрий1905 Посмотреть сообщение
Цикл с rsT не работает. Выполняется только один раз - находит и копирует только один файл - а потом тишина.
Ну и правильно, т.к. у вас он обусловлен Do Until .EOF = True - один раз загнали курсор в конец и всё.
Возвращать в начало нужно же: rsT.MoveFirst
Приблизительно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
strFileName = Dir(strDirPathOLD & strMaskSearch)
 
    Do While strFileName <> ""
        MsgBox strFileName
        With rsT
            Do Until .EOF = True
                N = rsT!NM
                If N = strFileName Then
                    FileCopy strDirPathOLD & strFileName, strDirPathNEW & strFileName
                Else
                End If
                              
              .MoveNext
            Loop
        End With
        rsT.MoveFirst 'Возврат в начало! (zuruck!)
        strFileName = Dir
    Loop
Аппаздал
А про поиск по RS хотел ниже ...
1
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
15.06.2018, 17:03  [ТС]
Eugene-LS, mobile, Спасибо Вам Большое!
Попробовал оба способа - все работает!!!

Ein schönes Wochenende wünsche ich Euch!

Добавлено через 2 минуты
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Аппаздал
А про поиск по RS хотел ниже ...
mobile, опять всех опередил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2018, 17:03
Помогаю со студенческими работами здесь

Как средствами vba подключиться к sap и выполнять транзакции с данными из файла excel
Как средствами vba подключиться к sap, если можно напишите пример. Нужно выполнять транзакции с данными из файла excel.

Access. Изменение таблицы средствами VBA
Есть такая задача: Имеется таблица з двумя полями(счетчик+текстовое поле). Имется текстовая переменная. Необходимо проверить имеет ли...

Пример работы с базой данных MS Access средствами VBA MS Excel
Выкладываю свой пример работы с базой данных MS Access (так и с любой базой данных, меняется только строка подключения) с помощью VBA MS...

Как лучше организовать работу Access с данными из разных файлов Excel
Задача в следующем. В базе Access есть список путей до типовых файлов Excel, откуда нужно взять данные. Связывание БД с этими...

Импорт текстовых файлов в таблицы Access через VBA
При создании базы данных столкнулся с проблемой... С импортом текстовых файлов в таблицы Access. Основная трудность - в текстовых файлах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru