2014-04-03 19 views
2

好的,我意識到我即將提出的問題可能不可能,我可以忍受。但如果這是可能的,它會讓我的生活變得更容易。單個查詢的臨時數據類型轉換

在我的MS Access數據庫中,我試圖查詢2個表。這些表都鏈接到我的Access數據庫,其中一個鏈接到包含來自單獨的DB2數據庫轉儲的Excel文件(MSSB Reps DTP)。 我的查詢(SalesPage DNK Rep Query)中的另一個錶鏈接到另一個Access數據庫,該數據庫又鏈接到一個SQL數據庫。下面是該查詢設計屏幕的圖像:

My Accdb Query Design Screen

如果表是鏈接與其說是因爲,由於它們是鏈接表的事實很重要,因爲這是MS Access中,我不能編輯表格。因此,我不能簡單地彈出到任一表的設計模式並更改給定列的數據類型。

每個表格都有一個名爲CRD Number的列。我想根據此列在這兩個表之間創建一個內部聯接。只是一個簡單的日常內部聯接。但我不能這麼做,因爲CRD Number列存儲爲MSSB Reps DTP表的編號,並且作爲SalesPage DNK代碼查詢表中的文本存儲。

我想知道是否有某種方式臨時使用溫控功能以「鑄造」的CRD Number列fromo的MSSB Reps DTP表作爲文本,這樣我就可以運行此查詢。但是,任何解決方案將不勝感激。只是不要告訴我編輯Excel文檔。出於各種原因,我努力避免這種情況。

回答

2

您可以使用CStr將該數字轉換爲文本。

SELECT * 
FROM 
    [MSSB Reps DTP] AS m 
    INNER JOIN [SalesPage DNK Rep Query] AS s 
    ON CStr(m.[CRD Number]) = s.[CRD Number]; 

訪問查詢設計器可以拒絕顯示在設計視圖即加入,但你可以切換到SQL查看和編輯語句文本。

+0

太棒了。我會試試這個報告。 – FluffyKittens

+0

好吧,我明白了。我第一次嘗試使用該函數時遇到了問題,因爲每個表的'CRD Number列'可以包含空值。我只是將「不是空」標準添加到我的「Where」子句中,並且阻止了每個表的空值的可能性。 ' – FluffyKittens

+1

這是我最終使用的代碼:'FROM [SalesPage DNK Rep Query] INNER JOIN [MSSB Reps DTP] ON [SalesPage DNK Rep Query] .CRD_NUMBER = CStr([MSSB Reps DTP]。[Crd Number]) WHERE((([SalesPage DNK Rep Query] .CRD_NUMBER)不爲空AND(([MSSB Reps DTP]。[Crd Number])不爲空)); – FluffyKittens