Мне выдано большое количество файлов и что фактически является «индексом документа» в файле Excel.
Я пытаюсь определить, действительно ли мы получили все файлы, перечисленные в индексе.
Моя проблема в том, что не все электронные имена файлов указаны правильно.
В некоторых случаях в электронном имени файла добавлено описание или добавлена ревизия, поэтому прямой поиск (JOIN) невозможен, и яхотел бы использовать вложенный оператор LIKE:
Примером проблемы является то, что я не могу сопоставить объекты ниже:
tblINDEX.idxFilename
- tblFilename.dirFilename
RR-ASF-00-0111-000075
- RR-ASF-00-0111-000075Construction Details.pdf
Приведенный ниже запрос (JOIN) находит только прямые совпадения:
SELECT tblINDEX.idxFilename, tblFilename.dirFilename
FROM tblINDEX LEFT JOIN tblFilename ON tblINDEX.idxFilename = dirFilename
WHERE tblFilename.filename Is Null Or tblFilename.filename Is Not Null;
В приведенном ниже запросе (LIKE) не отображаются пробелы / нули (пропущенные имена файлов).
SELECT tblINDEX.idxFilename, tblFilename.dirFilename
FROM tblFilename, tblINDEX
WHERE tblFilename.dirFilename Like idxFilename & '*' Or tblFilename.dirFilename Is Null;
Мой вложенный 'SELECT' возвращает синтаксическую ошибку во вложенном операторе SELECT.
SELECT tblINDEX.idxFilename
,(
SELECT tblFilename.filename
FROM tblFilename
WHERE tblFilename.filename Like tblINDEX.idxFilename & '*'
) AS 'idxFilename_FN'
FROM tblINDEX
;
Я знаю, что этот подход с вложенными запросами работает в T-SQL, но изо всех сил пытается заставить его работать вMS Access.