Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Public Function basConcat(MyField As String, _
MyTable As String, _
Optional MyRel As String = "", _
Optional MyCriteria As String = "", _
Optional Delim As String = "") As String
Dim sql As String
Dim rst As DAO.Recordset
Dim RtnStr As String
sql = "Select " & MyField & " From " & MyTable
If (MyCriteria <> "") Then
sql = sql & " Where " & " " & MyField & " " & MyRel & " " & Chr(34) & MyCriteria & Chr(34)
End If
Set rst = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
If (rst.EOF = True And rst.BOF = True) Then
basConcat = ""
Else
RtnStr = ""
While Not rst.EOF
RtnStr = RtnStr & rst.Fields(MyField) & Delim
rst.MoveNext
Wend
End If
basConcat = Left(RtnStr, Len(RtnStr) - Len(Delim))
End Function
Public Function basMode(MyField As String, _
MyTable As String, _
MyCriteria As String) As Variant
Dim sql As String
Dim rst As DAO.Recordset
sql = "Select " & MyField & ""
sql = sql & ", Count(" & MyField
sql = sql & ") As FieldCount "
sql = sql & "From " & MyTable
If (MyCriteria <> "") Then
sql = sql & " Where " & " " & MyField & " " & MyCriteria & " "
End If
sql = sql & " Group By " & MyField
sql = sql & " Order By Count(" & MyField & ") Desc;"
Set rst = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
If rst.EOF = True And rst.BOF = True Then
basMode = ""
Else
rst.MoveFirst
basMode = rst(MyField)
End If
End Function
Public Function basMedian(MyField As String, _
MyTable As String, _
MyCriteria As String) As Double
Dim sql As String
Dim rst As DAO.Recordset
Dim intMiddle As Integer
Dim NumToCalc As Integer
Dim valMedian As Double
sql = "Select " & MyField & " From " & MyTable
If MyCriteria <> "" Then
sql = sql & " Where " & MyCriteria
End If
sql = sql & " Order By " & MyField
Set rst = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
If (rst.EOF = True And rst.BOF = True) Then
basMedian = 0
Else
rst.MoveLast
rst.MoveFirst
For intMiddle = 1 To rst.RecordCount \ 2
rst.MoveNext
Next intMiddle
NumToCalc = (rst.RecordCount \ 2) Mod 2
For intMiddle = 1 To NumToCalc
valMedian = rst.Fields(MyField) + basvalMedianMedian
Next intMiddle
basMedian = valMedian / (NumToCalc - 1)
End If
End Function