我正在尝试在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
来自DeExtrREF
的变量Query6
如下:
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 :(得分: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
希望这会有所帮助。我自动对表和查询进行别名,但作为一般规则,如果您的查询不太难理解,则更有可能获得帮助。