2013-02-28 71 views
1

我想在MS Access中創建一個SQL子查詢。獲取「表達式
條件中的」類型不匹配「錯誤消息。具有計算表達式的子查詢的條件表達式中的數據類型不匹配

子查詢是

SELECT * 
    (SELECT Locs_Eq.Locs_Eq 
    FROM Locs_Eq 
    WHERE Query6.StDeExtrREF=CStr(Locs_Eq.Full_VendSN) 
) AS Loc_1 
FROM Query6 

可變DeExtrREFQuery6如下:

IIF(PDetail.VeName="Siem" AND [DeExtr1]="Contr REF#", 
    TRIM(MID (PDetail.Desc, (InStr([PDetail.Desc],":")+1), LEN(PDetail.Desc))), 
    TRIM(MID (PDetail.Desc, (InStr([PDetail.Desc],":")+1), LEN(PDetail.Desc))) 
    ) AS DeExtrREF 

我嘗試添加CSTR中,來變量,仍然收到錯誤消息。請幫忙。

+0

你能提供補充信息嗎?本身就是一個非常奇怪的查詢。因爲它來自Access,我猜測還有其他多個查詢。如果你提供了一些表格結構,並告訴我們你想要做什麼,你可能會得到更多的幫助。 – Lance 2013-02-28 22:31:00

回答

1

我會假設你在第一行的SELECT *之後有一個逗號。如果沒有,請先更改,看看是否有幫助。

我不確定,但它可能是空值相關的錯誤;在你訪問這個應用程序添加到一個模塊:

public function is_null(val as variant, rplc as string) as string 
    if isnull(val) then 
     is_null = rplc 
    else 
     is_null = cstr(val) 
    end if 
end function 

然後更改您的查詢使用這個,如下所示:

SELECT q.*, 
    (SELECT l.Locs_Eq 
    FROM Locs_Eq l 
    WHERE is_null(q.StDeExtrREF, "") = CStr(is_null(l.Full_VendSN, "")) 
) AS Loc_1 
FROM Query6 q 

希望這有助於。我自動爲表和查詢進行別名,但作爲一般規則,如果您的查詢不太難理解,則更有可能在此處獲得幫助。

+1

還有一個內置函數'NZ',它和'is_null'完成相同的功能。 – 2013-03-01 12:35:31

相關問題