2009-08-04 47 views
1

Microsoft Access实现在尝试执行打开某些查询的宏时抛出类型不匹配错误。大多数表都链接到SQL Server,我需要将两个表连接在一起,这些表具有不同的数据类型。如何将表连接在具有不同数据类型的列上?

表A:
参考文本

表B:
Personal Data个人纪录

我通常会要纠正在SQL Server端的问题,但也有多个应用程序打相同的数据库,并且需要大量时间来测试所有这些数据库。此外,我们正在完全重写这个应用程序,我今天做的任何工作都是完全丢弃的...

如果有一种方法可以让这个连接成为可能,我会保存所有类型的时间...

回答

3

在Access中,您可以使用CLng(或Cint)函数将表A的REFERENCE值从文本转换为数字。

我希望在SQL Server中创建表A的视图,以在Access获取数据之前转换字段的数据类型。您不需要针对其他现有应用测试视图。当你的重写使视图不再有用时,就放弃它。

1

你提到的每一列的数据类型是什么?

如果你想比较它stringwise,你可以做Cstr(myNumericColumn) = myStringColumn
或者以数字模式进行比较,请执行CLng(myStringColumn) = myNumericColumn

+0

其上面,表A具有文本列而tableB的具有整数列。 – RSolberg 2009-08-04 16:54:56

+0

您可以使用上述任一选项,具体取决于您希望如何比较。 – shahkalpesh 2009-08-04 17:16:38

2

您可以在标准中进行比较。

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

你也可以做一个直通 - 在访问查询执行的SQL Server上,只返回数据。

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

HTH

相关问题