Public Sub CreateRanges()
Const TableName = "TblCompanies"
Const FieldName = "CompanyName"
Const NumberLetters = 6
Dim Buckets As Integer
Dim BucketSize As Long
Dim rs As DAO.Recordset
Dim RangeStart As String
Dim RangeEnd As String
Dim strSql As String
Dim i As Long
Set rs = CurrentDb.OpenRecordset("Select " & FieldName & " FROM " & TableName & " ORDER BY " & FieldName)
Buckets = GetBuckets 'could be a count of employees
Debug.Print Buckets
If Not rs.EOF Then
rs.MoveLast
rs.MoveFirst
BucketSize = rs.RecordCount / Buckets
RangeStart = Left(rs.Fields(FieldName), NumberLetters)
For i = 1 To Buckets - 1
rs.Move BucketSize
RangeEnd = Left(rs.Fields(FieldName), NumberLetters)
strSql = "Insert INTO tblRanges (RangeStart, RangeEnd) VALUES ('" & RangeStart & "','" & RangeEnd & "')"
CurrentDb.Execute strSql
RangeStart = RangeEnd
Next i
rs.MoveLast
RangeEnd = Left(rs.Fields(FieldName), NumberLetters)
strSql = "Insert INTO tblRanges (RangeStart, RangeEnd) VALUES ('" & RangeStart & "','" & RangeEnd & "')"
CurrentDb.Execute strSql
Debug.Print strSql
End If
End Sub