2009-08-04 45 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

相關問題