想学习如何自定义函数
Dim Rs As New ADODB.Recordset
Dim Rst As New ADODB.Recordset
Dim Cnn As New ADODB.Connection
Dim Y As Double
Dim StrSql As String
Dim Sql As String
Dim Ly As Long
Dim Xm As Integer
Set Cnn = CurrentProject.Connection
Sql = "SELECT DISTINCT 业务员, format(日期,'yyyymm') AS Rq FROM 业绩明细 ORDER BY 业务员, format(日期,'yyyymm')"
Rs.Open Sql, Cnn, adOpenKeyset, adLockOptimistic
Y = 0
Do While Not Rs.EOF
Ly = DSum("利润", "业绩明细", "业务员=" & Rs.Fields("业务员") & " and format(日期,'yyyymm')='" & Rs.Fields("Rq") & "'")
StrSql = "select top 1 * from 业绩明细 where 业务员=" & Rs.Fields("业务员") & " and format(日期,'yyyymm')='" & Rs.Fields("Rq") & "' order by 日期, 业绩编号 desc"
Rst.Open StrSql, Cnn, adOpenDynamic, adLockOptimistic
If Xm <> Rst.Fields("业务员") Then
Y = 0
End If
Do While Not Rst.EOF
Rst.Fields("月差额") = Ly - 2400 + Y
Rst.Update
If Rst.Fields("月差额") >= 0 Then
Y = 0
Else
Y = Rst.Fields("月差额")
End If
Rst.MoveNext
Loop
Rst.Close
Xm = Rs.Fields("业务员")
Rs.MoveNext
Loop
Set Rs = Nothing
Set Rst = Nothing
Set Cnn = Nothing
上面的代码是个按钮单击事件
请问:
1。如何将该代码修改成函数?使其能在查询里使用!
2。能不能将
ly = DSum("利润", "业绩明细", "业务员=" & Rs.Fields("业务员") & " and format(日期,'yyyymm')='" & Rs.Fields("Rq") & "'")
修改成子查询,如:
ly = "select Sum(业绩明细.利润) AS 利润 from 业绩明细 where 业务员= " & Rs.Fields("业务员") & " and format(日期,'yyyymm')='" & Rs.Fields("Rq") & "'"