That is correct except the first entry would be left alone, second entry gets the first -1.
I think I found a solution. Here it is:
Public Function funFillArray(ByVal strTable As String, Optional ByVal intFieldNumber As Integer = 0)
'Created By: Robert Johnson
'Modified By: Kenneth Lines
'Usage: funFillArray("Table1",3)
'Output: Changes a table to create unique entries when dupicates are present
Dim Db As ADODB.Connection
Dim rst As ADODB.Recordset
Dim SQLstr As String
Dim varData As Variant
Dim Concatenation As String
Dim Temp As String
Dim TempArray(4) As String
Dim CombinedLength As Integer
Dim intCount, CountIndex, IntI As Integer
Set Db = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection
SQLstr = "SELECT * FROM " + strTable
rst.Open SQLstr, Db, adOpenStatic, adLockOptimistic, -1
IntI = 1
CountIndex = 1
varData = rst.GetRows(10000) 'Sets varData to get up to 10,000 rows but varData will only use what
'it needs or up to 10,000
intCount = UBound(varData, 2) + 1 'Gives the number of rows in varData
Rem moves forwards from first through rows and updates the change
rst.MoveFirst
For IntI = 1 To intCount - 1 Step 1
If Not (IsNull(rst.Fields(4))) Then
TempArray(CountIndex) = rst.Fields(4)
rst.MoveNext
TempArray(CountIndex + 1) = rst.Fields(4)
If (varData(intFieldNumber, IntI - 1) = TempArray(CountIndex + 1)) Then
Rem put OldValue + "-1" back into RST
rst.Fields(4) = CStr(varData(intFieldNumber, IntI - 1)) + "-" + CStr(CountIndex)
rst.Update
CountIndex = CountIndex + 1
Else
CountIndex = 1
End If
End If
Next IntI
End Function