Как объединить таблицы в столбцы с разными типами данных? - PullRequest
1 голос
/ 04 августа 2009

Реализация Microsoft Access выдает ошибку несоответствия типов при попытке выполнить макрос, который открывает некоторые запросы. Большинство таблиц связаны с SQL Server, и мне нужно объединить две таблицы с разными типами данных.

Таблица A:
СПРАВОЧНЫЙ ТЕКСТ

Таблица B:
REFNO NUMBER

Обычно я хотел бы исправить проблему на стороне SQL Server, но есть несколько приложений, попадающих в одну и ту же базу данных, и для их тестирования потребовалось бы значительное время Кроме того, мы находимся в процессе полного переписывания этого приложения, и любая работа, которую я делаю сегодня, полностью отбрасывается ...

Если есть способ сделать это соединение возможным в доступе, я бы сэкономил все виды времени ...

Ответы [ 3 ]

3 голосов
/ 04 августа 2009

В Access вы можете использовать функцию CLng (или Cint) для преобразования значений REFERENCE таблицы A из текста в число.

Я бы предпочел создать представление таблицы A в SQL Server для преобразования типа данных поля до того, как Access получит данные. Вам не нужно проверять вид на соответствие другим существующим приложениям. Когда ваше переписывание сделает представление больше не полезным, просто откажитесь от него.

2 голосов
/ 04 августа 2009

Вы можете сделать сравнение в критериях.

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cstr(nz([REFNO],""))

Вы также можете выполнить passthrough - запрос в доступе, который выполняется на сервере sql и возвращает только данные.

SELECT [REFERENCE], [REFNO]
FROM [Table a], [Table b]
WHERE [REFERENCE]=cast([REFNO] as varchar(25))

НТН

1 голос
/ 04 августа 2009

Какой тип данных для каждой колонки вы упомянули?

Если вы хотите сравнить его по строкам, вы можете сделать Cstr(myNumericColumn) = myStringColumn.
ИЛИ, чтобы сравнить его в числовом режиме, выполните CLng(myStringColumn) = myNumericColumn.

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