MS Access 2007 sql函数?

时间:2009-12-13 10:56:52

标签: sql ms-access function

MS Access 2007是否支持创建用户定义的sql函数? 如果是这样,菜单中的选项在哪里?

3 个答案:

答案 0 :(得分:6)

如果你的意思是你可以在Access中的SQL中使用用户定义函数(UDF),是的,你可以。例如,如果您想要中值,可以在查询设计窗口中编写SQL,如下所示:

SELECT s.Month, 
       Sum(([SentTo])) AS [Sum Sent], 
       fMedian("Statistics","Month",[Month],"SentTo") AS [Median Sent]
FROM Statistics s
GROUP BY s.Month

其中fMedian引用模块中的代码:

Function fMedian(SQLOrTable, GroupFieldName, GroupFieldValue, MedianFieldName)
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs1 = db.OpenRecordset(SQLOrTable, dbOpenDynaset)

    If IsDate(GroupFieldValue) Then
        GroupFieldValue = "#" & GroupFieldValue & "#"
    ElseIf Not IsNumeric(GroupFieldValue) Then
        GroupFieldValue = "'" & Replace(GroupFieldValue, "'", "''") & "'"
    End If

    rs1.Filter = GroupFieldName & "=" & GroupFieldValue
    rs1.Sort = MedianFieldName

    Set rs = rs1.OpenRecordset()
    rs.Move (rs.RecordCount / 2)

    If rs.RecordCount Mod 2 = 0 Then
        varMedian1 = rs.Fields(MedianFieldName)
        rs.MoveNext
        fMedian = (varMedian1 + rs.Fields(MedianFieldName)) / 2
    Else
        fMedian = rs.Fields(MedianFieldName)
    End If

End Function

来自:http://wiki.lessthandot.com/index.php/Aggregate_Median_(UDF)

答案 1 :(得分:0)

您可以使用VBA模块功能创建自定义功能。

查看Build Custom Functions for Your Access Applications

答案 2 :(得分:0)

查询可以采用使其与存储过程类似的参数。可以通过VBA实现功能。