У меня есть небольшая БД для телефонных вызовов, сохраненная в многоуровневой структуре вложенных папок по году, месяцу, дате (т. Е. Папка 2017 содержит папки с месяцами 1,2,3 ... 12, каждая из которых содержит дневные папки 1, 2,3 ... 30,31). Каждая папка дня содержит несколько пар файлов XML и WAV (названных так: 20180824181025-0000-P7D53Z.xml, 20180824181025-0000-P7D53Z.wav), каждая пара является записью одного телефонного звонка. Все XML-файлы имеют одинаковую структуру:
<?xml version="1.0" encoding="ISO-8859-1"?>
<CALL>
<ID>20180824181025-0000-P7D53Z</ID>
<SIP-ID>1be206584b8130a605a71b867f990e8d@82.212.65.23</SIP-ID>
<SUCCEED>true</SUCCEED>
<CALLER>
<IPADDR>82.212.65.23:5030</IPADDR>
<NAME>"4256781713" <sip:14256781713@sip.ca.bonco.com:5030></NAME>
<AUDIO>G711(ulaw)</AUDIO>
</CALLER>
<CALLEE>
<IPADDR>192.168.1.195:8550</IPADDR>
<NAME><sip:2195272326@sip.ca.bonco.com:5030></NAME>
<AUDIO>G711(ulaw)</AUDIO>
</CALLEE>
<TIME>
<INIT>2018-08-24 18:20:25</INIT>
<BEGIN>2018-08-24 18:20:38</BEGIN>
<END>2018-08-24 18:20:47</END>
<DURATION>9</DURATION>
</TIME>
<RECORD>
<ROOT>K:\Phone Recorder</ROOT>
<PATH>K:\Phone Recorder\2018\08\24\20180824181025-0000-P7D53Z.wav</PATH>
<FILENUM>1</FILENUM>
</RECORD>
<DTMF/>
</CALL>
Я пытался вручную импортировать файл за файлом в Access, но у добавленных таблиц нет ключей связывания, поскольку исходный XML не структурирован для реляционной базы данных. Как автоматизировать импорт контента из такой многоуровневой структуры папок в базу данных вызовов MS Access 2016 с помощью преобразования XSLT и кода итерации папок VBA?
Цель состоит в том, чтобы просмотреть единый список вызовов, отсортированный по году / месяцу / дате / времени, с разделителями для каждого года и месяца. Каждая запись должна содержать телефонные номера сторон, дату и время входа / выхода, длительность звонка и связанный WAV-файл; при нажатии на него должен открываться аудиоплеер по умолчанию для прослушивания записи. Я не смог найти подобного вопроса или решения по импорту нескольких файлов XML в Access из структуры вложенных папок.