在Microsoft Access中,我有两个链接表,我无法更改其结构。
其中一个表包含整数格式的ID,另一个包含相同的ID,但是以字符串格式。
我想加入这些领域,但很明显,MS Access并没有让我这么做。
有没有办法,可能使用强制转换或类似的东西来创建此连接?
由于
答案 0 :(得分:3)
如果ID
中的t1
是t2
中的自动编号和CLng()
中的文字,则可以使用ON
表达式中的t2.ID
将SELECT *
FROM
t1 INNER JOIN t2
ON t1.ID = CLng(t2.ID);
转换为Val()
长整数。
CLng()
或者您可以将ID
代替t2
用于其他SELECT CLng(ID) AS numeric_ID, t2.*
FROM t2;
数字类型。
我不确定查询设计师在设计视图中与此合作的程度如何,但您可以在SQL View中执行此操作。
OTOH,您可能更愿意为qryT2
创建一个单独的查询" qryT2",它会将文本ID转换为数字。
t2
然后,您可以在第一个查询中将SELECT *
FROM
t1 INNER JOIN qryT2
ON t1.ID = qryT2.numeric_ID;
替换为{{1}},并让查询设计器找到更合适的一个。{/ p>
{{1}}
答案 1 :(得分:2)
转到设计器中的View > SQL View
,然后将您的join子句更改为:
ON CSTR(IntegerID) = StringID
当然,您的ID名称可能会有所不同,但您应该考虑这个想法。