There are 2 causes for duplicated indexes in Access:
1. The setting under:
Tools | Options | Tables/Queries | AutoIndex on ...
I think that's the one you were referring to, where if you give a field a
name ending with "ID", "num", "code", etc, then Access automatically creates
an index, and then if you mark it as primary key, you have a duplicate
index.
2. Relations with RI.
Access creates hidden indexes to manage relationships where you asked for
enforced Referential Integrity. So if you index your foreign key fields and
then create relations with RI, you also have duplicate indexes. You can
avoid these by not manually indexing your foreign keys.
The function below lists relations, including the hidden ones.
Function ShowRel()
Dim db As DAO.Database
Dim rel As DAO.Relation
Dim fld As DAO.Field
Set db = CurrentDb()
For Each rel In db.Relations
Debug.Print rel.Name, rel.Table, rel.ForeignTable, rel.Attributes
For Each fld In rel.Fields
Debug.Print , fld.Name, fld.ForeignName
Next
Next
Set fld = Nothing
Set rel = Nothing
Set db = Nothing
End Function