【发布时间】:2015-09-03 03:09:04
【问题描述】:
我在访问中使用查询生成器进行的查询中出现错误消息“条件表达式中的数据类型不匹配”。问题是由查询中的函数引起的。
这是函数:
Function Sudent_Selected_Next_Active_Season(Code_Student, Starting_Date As Date, Code_Project) As Boolean
Dim MyReturn
Dim SQLDate
SQLDate = Format$(Starting_Date, "\#mm\/dd\/yyyy\#")
MyReturn = DCount("[code_student]", "Project_Termination_level_2", "[Code_Student]=" & Code_Student & " and [ending] > " & SQLDate & " and [code_project] <>" & Code_Project)
If IsNull(MyReturn) Then
MyReturn = 0
End If
If MyReturn > 0 Then
Sudent_Selected_Next_Active_Season = True
Else
Sudent_Selected_Next_Active_Season = False
End If
End Function
我尝试了标准 0、-1、“0”、“-1”、True、False,它们都给出了相同的错误。
如果我删除条件并查看数据,则所有行都由 -1 和 0 组成
这是使用的 SQL。
SELECT Sudent_Selected_Next_Active_Season([t_student].[code_student],[T_Project].[starting_date],[T_project].[code_project]) AS ActiveNextSeason
FROM (T_Project INNER JOIN T_Project_Student ON T_Project.Code_Project = T_Project_Student.Code_Project) INNER JOIN T_Student ON T_Project_Student.Code_Student = T_Student.Code_Student
WHERE (((Sudent_Selected_Next_Active_Season([t_student].[code_student],[T_Project].[starting_date],[T_project].[code_project]))=-1)) OR (((Sudent_Selected_Next_Active_Season([t_student].[code_student],[T_Project].[starting_date],[T_project].[code_project]))=-1));
如果有人能告诉我在哪里可以找到解决方案,我将不胜感激。如果有人想了解更多信息,请尽管询问。
【问题讨论】:
-
为什么
Code_Student和Code_Project在函数调用签名中没有as DataType? -
您还应该在使用该函数的地方添加查询 SQL。
-
@Juan Carlos Oropeza 我做了更改,但没有修复。
-
如果您在函数中指定
Code_Student和Code_Project的数据类型,您将真正帮助您自己(下次阅读该函数时)和我们。它们是数字吗? -
这些是整数,是它们各自表的 ID。
标签: sql ms-access ms-access-2010