标题: 为什么总是说未定义函数 [打印本页] 作者: wuwt918 时间: 2012-2-8 11:37 标题: 为什么总是说未定义函数 代码:
Public Function datedistance(a, b)
Dim a, b As Date
If b < a Then
msg "后面日期小于前面日期,请检查取值是否正确"
Else
If Year(a) = Year(b) Then
If Month(a) = Month(b) Then
datedistance = Day(b) - Day(a) + 1
Else
datedistance = Day(b)
End If
Else
datedistance = Day(b)
End If
End If
End Function
-------------------------------------------
Private Sub Command7_Click()
Dim strsql1, strsql2, strsql3, strsql4, strsql5 As String
strsql1 = "UPDATE 宿舍管理 SET 宿舍管理.会计期间 = [Text3]"
strsql2 = "UPDATE 宿舍管理 SET 宿舍管理.应承担天数 = datedistance(宿舍管理.入住日期,宿舍管理.搬离日期)"
doCmd.RunSQL strsql2
End Sub
我觉得第一行已经定义了datedistance这个函数,怎么后面用不了啊作者: fnsmydyang 时间: 2012-2-8 11:54
发个实例看看能否解决。(在论坛上求解决问题上传附件是最好的方法)作者: Grant 时间: 2012-2-8 11:58
函数不能在doCmd.RunSQL中执行,你可以在查询中执行作者: aslxt 时间: 2012-2-8 14:03
Public Function datedistance(ByVal a As Date, ByVal b As Date) As Date
If b < a Then
MsgBox "后面日期小于前面日期,请检查取值是否正确"
Else
If Year(a) = Year(b) Then
If Month(a) = Month(b) Then
datedistance = Day(b) - Day(a) + 1
Else
datedistance = Day(b)
End If
Else
datedistance = Day(b)
End If
End If
End Function 作者: yanghua1900363 时间: 2012-2-8 14:41
检查一下是否把函数Public Function datedistance(a, b) 放在公用模块? 作者: wuwt918 时间: 2012-2-8 15:14
Grant 发表于 2012-2-8 11:58
函数不能在doCmd.RunSQL中执行,你可以在查询中执行