Ok, I ran some tests with the same block of test data each time.

I ran
Dbs.Execute "DELETE FROM " & tblAcronym & " WHERE " & acrSOURCE & " = '" & sRecordType & "'"
It took 60 seconds.

I added an index to the acrSOURCE field and re-ran the test.
It dropped to 30 second.

However the dbOpenDynaset looping method only took 15 seconds!

I tried wrapping it with Transactions, but that just runs for a while and stops with an error.
Error 3035 System Resource Exceeded