MS Access запрос производит недопустимый вызов процедуры - PullRequest
0 голосов
/ 14 ноября 2018

Мой запрос в доступе работает нормально, если я использую только следующий запрос с оператором выбора.Как только он становится запросом на добавление, он выдает ошибку «Недопустимый вызов процедуры».

Я сузил столбцы с ошибками как "Publ" и "PublLong".Оба являются длинными текстовыми строками.Если я удаляю эти два столбца, запрос обновляется без ошибки.

Вот примерная точка данных, найденная в поле [Bezeichung]:

publishing.bank.com / publ-dl-ch / pdf / WhatsUp_20181113_en.pdf

Я проверил таблицу, в которую она вставляется, и типы данных такие же, как и другие параметры, блокирующие вставку.

Как мне заставить его работать?

INSERT INTO tbl_MatomoRaw ( DownloadDate, IntExt, Publ, PublLong, 
                            PublDate, [Language], Download_Visits, PublMonth )
SELECT 
    Date() AS DownloadDate, 
    Left([Bezeichnung],InStr([Bezeichnung],".")-1) AS IntExt, 
    Nz(Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStr([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1),"") AS Publ, 
    Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStrRev([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1) AS PublLong, 
    Mid([Bezeichnung],InStr([Bezeichnung],"_")+1,8) AS PublDate, 
    Mid([Bezeichnung],Len([Bezeichnung])-5,2) AS [Language],
    xlsx_Output.[Eindeutige Downloads] AS Download_Visits, 
    Mid([Bezeichnung],InStr([Bezeichnung],"_")+1,6) AS PublMonth
FROM xlsx_Output
WHERE 
    (((Nz(Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStr([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1),"")) Not Like "#Func!"));

1 Ответ

0 голосов
/ 14 ноября 2018

#Func! указывает на то, что одна из ваших функций вызывает ошибку.

В вашем запросе используются несколько функций, которые сталкиваются с проблемами, если ваш ввод не соответствует этому формату, вместо предварительной фильтрации вместо предварительной фильтрации, поскольку вы не можете отфильтровать ошибку при добавлении:

INSERT INTO tbl_MatomoRaw ( DownloadDate, IntExt, Publ, PublLong, 
                            PublDate, [Language], Download_Visits, PublMonth )
SELECT 
    Date() AS DownloadDate, 
    Left([Bezeichnung],InStr([Bezeichnung],".")-1) AS IntExt, 
    Nz(Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStr([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1),"") AS Publ, 
    Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStrRev([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1) AS PublLong, 
    Mid([Bezeichnung],InStr([Bezeichnung],"_")+1,8) AS PublDate, 
    Mid([Bezeichnung],Len([Bezeichnung])-5,2) AS [Language],
    [Eindeutige Downloads] AS Download_Visits, 
    Mid([Bezeichnung],InStr([Bezeichnung],"_")+1,6) AS PublMonth
FROM (SELECT * FROM xlsx_Output WHERE Len(Bezeichnung) > 5 AND Bezeichnung LIKE "*?.?*" AND Bezeichnung LIKE "*_????????*" AND Bezeichnung LIKE "*?\?*")
WHERE 
    (((Nz(Mid([Bezeichnung],InStrRev([Bezeichnung],"/")+1,InStr([Bezeichnung],"_")-
        InStrRev([Bezeichnung],"/")-1),"")) Not Like "#Func!"));

Поскольку я не знаю точно, где происходят ошибки, я не могу написать правильный фильтр для их идентификации, но, судя поВ вашем запросе они должны включать косую черту и символ после этой косой черты, знак подчеркивания и не менее 8 символов после этого подчеркивания, а также точку с хотя бы одним символом до и после точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...