Here's some pseudo-code for one way to do it using DAO (ADO has a bit different syntax for opening recordsets.)
[tt]
Dim SaveField As Variant
Dim ro As DAO.Recordset
Dim rs As DAO.Recordset
' Get the value of the field from the last record.
Set ro = Currentdb.OpenRecordset ( _
"Select * From tbl Where AutoNumFld = " & _
"(Select MAX(AutonumFld) From tbl)" )
SaveField = ro.Fields("DefaultFld").Value
Set ro = Nothing
' Now Add a record to the Table
Set rs = Currentdb.OpenRecordset ("tbl")
rs.AddNew
rs.Fields("DefaultFld").Value = SaveField
rs.Update
[/tt]
Your desire to implement
FieldData[autonumber] = FieldData[autonumber-1]
has some problems. First, it's structured in much the same way that an array subscript is structured and that's not supported in SQL (i.e. it implies that FieldData[autonumber-1] will access a different record than the current one and that doesn't happen.)
Second ... there's no assurance that autonumber-1 exists where autonumber is the number being generated for the new record. If, for example, a record was added and then deleted, then the next record added will skip a number in the autonumber sequence. Autonumbers are (in the absence of any manipulation) the number of records that have been added to the table since it was created ... NOT adjusted for any that may have been deleted.
All that said, it is possible (I believe) to fabricate an INSERT INTO statement that does what you want.