Синтаксическая ошибка 3075 при выполнении предварительно созданного запроса в Access - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь использовать код из старого потока, чтобы уместить мои данные: Объединить поля из одного столбца в одной таблице в одно значение с разделителями-запятыми в другой таблице

У меня естьтаблица с 3600 записями, подобная показанной ниже для уникального AcousticTagCode 677:

AcousticTagCode PITtag  bkm Type    SiteCode
5004.24 3D6.001569C022  ap  STND    IC3
5004.24 3D6.001569C022  ap  STND    IC2
5004.24 3D6.001569C022  ap  STND    IC1
5004.24 3D6.001569C022  ap  STND    RGD1
5004.24 3D6.001569C022  ap  STND    RGU1
5004.24 3D6.001569C022  ap  STND    ORS1
5004.24 3D6.001569C022  ap  STND    WC1
5004.24 3D6.001569C022  ap  STND    WC2
5004.24 3D6.001569C022  ap  STND    WC3
5010.04 3D6.001569C01C  ap  STND    IC3
5010.04 3D6.001569C01C  ap  STND    IC2
5010.04 3D6.001569C01C  ap  STND    IC1
5010.04 3D6.001569C01C  ap  STND    RGD1

AcousticTagCode - числовое, все остальные поля - текстовые.

Когда я пытаюсь запустить

SELECT AcousticTagCode, ConcatRelated("SiteCode", "tblAllDetectionSites", 
    "AcousticTagCode = " & [AcousticTagCode]) AS Sites
    FROM tblAllDetectionSites;`

Я получаю сообщение об ошибке:

Ошибка 3075: синтаксическая ошибка (отсутствует оператор) в выражении запроса 'AcousticTagCode ='.

Я попытался поместить 'следующим образом:

SELECT AcousticTagCode, ConcatRelated("SiteCode", "tblAllDetectionSites", 
    "AcousticTagCode = '" & [AcousticTagCode]) AS Sites
    FROM tblAllDetectionSites;

Но получите эту ошибку:

Ошибка 3075: синтаксическая ошибка в строке в выражении запроса 'AcousticTagCode = "

Я не очень знаком с запросами SQL, так чтоМы будем благодарны, если это будет возможно!*

1 Ответ

1 голос
/ 10 апреля 2019

Я бы предложил изменить функцию ConcatRelated на:

ConcatRelated
(
    "SiteCode", 
    "tblAllDetectionSites", 
    iif
    (
        [AcousticTagCode] is null, 
        "AcousticTagCode is null", 
        "AcousticTagCode = " & Str([AcousticTagCode])
    )
)

Это должно решить две проблемы:

  • Учет записей, где AcousticTagCode равно нулю (группировка таких записей).
  • Использует функцию Str для преобразования значения Double, удерживаемого полем AcousticTagCode, чтобы избежать влияния региональных настроек.
...