简体   繁体   中英

MS Access 2007 sql functions?

Does MS Access 2007 support creation of user defined sql functions? if so, where is the option for it in the menu?

If you mean can you use User Defined Functions (UDF) in SQL in Access, yes you can. For example, if you wanted the median value, you might write SQL in the query design window like so:

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

Where fMedian refers to code in a module:

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

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

You can create custom functions using VBA Module Functions.

Have a look at Build Custom Functions for Your Access Applications

queries can take parameters which makes them similar to stored procedures. Functions can be achieved through VBA.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM