Соединение двух таблиц с разными типами данных MS ACCESS - ошибка «несоответствие типов в выражении» - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить запрос на доступ с помощью двух действующих CSV, имеющих общее поле с разными типами данных (числа и краткий текст).Я обнаружил, что вы можете объединять разные типы данных, используя CStr.Я добавил «CStr» в мой код в представлении SQL.Пожалуйста, найдите код ниже.

Это дает мне вывод, который я хочу получить при доступе, и теперь я могу видеть вывод, когда я нажимаю на «представление таблицы».Однако, когда я пытаюсь экспортировать данные (на самом деле я пытаюсь создать спецификацию экспорта, чтобы я мог экспортировать CSV-файл с помощью макроса) как CSV, я получаю сообщение об ошибке «несоответствие типов в выражении».

Вот мой код:

SELECT Sixthform_Reg_Year_Groups.Forename, 
       Sixthform_Reg_Year_Groups.Surname, 
       Sixthform_Reg_Year_Groups.Reg, Students.objectGUID
FROM Sixthform_Reg_Year_Groups INNER JOIN
     Students
     ON CStr(Sixthform_Reg_Year_Groups.Person_id) = Students.employeeID
WHERE (((Sixthform_Reg_Year_Groups.Reg)="12E"));`

Я также пытался добавить 'CStr' с обеих сторон.как показано ниже, но возникла та же проблема.

FROM Sixthform_Reg_Year_Groups INNER JOIN
     Students
     ON CStr(Sixthform_Reg_Year_Groups.Person_id) = CStr (Students.employeeID)
WHERE (((Sixthform_Reg_Year_Groups.Reg) = "12E"));`

И, конечно, без 'CStr' я даже не могу просмотреть вывод в 'представлении таблицы данных'.Каждый раз, когда я нажимаю на просмотр таблицы, появляется сообщение об ошибке «несоответствие типов в выражении».

Любая помощь в решении этой проблемы будет принята с благодарностью.

Заранее спасибо.

Дополнительная информация: типы данных: EmpoyeeID - «Короткий текст», а идентификатор лица - «Номер»

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

ОК, ребята, мне удалось решить эту проблему, в итоге все оказалось просто.Это то, что я сделал.

По сути, я импортировал связанную таблицу.На этот раз в окне импорта я щелкнул «расширенный» и изменил тип данных на «краткий текст» в столбце «идентификатор человека», чтобы он соответствовал типу данных employeeID.И тогда все проблемы решены.(Я не знал, что вы могли бы сделать это)

Спасибо всем за ваши ответы.Просматривая ваши комментарии, вывели меня на правильный путь.

Очень ценится.

0 голосов
/ 03 октября 2018

Попробуйте наоборот:

ON Sixthform_Reg_Year_Groups.Person_id = Val(Students.employeeID)

и / или предотвратите Null ошибки:

ON CStr(Nz(Sixthform_Reg_Year_Groups.Person_id, 0)) = Nz(Students.employeeID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...