Tralasciando il fatto della chiave primaria legata ad un testo breve, cosa intendi per campo attivo?
Inoltre confronti il testo inserito in un controllo quindi è normale che ti vada a cambiare solo il record con il testo uguale. Se poi hai altre chiavi primarie con lo stesso testo, hai grossi problemi di struttura che non risolverai mai con accrocchi di questo genere.
Inoltre, l oggetto da cui prendi il valore, è quello che viene usato per un nuovo inserimento, oppure fa parte di una procedura scritta appositamente per cambiare le chiavi duplicate?
Inoltre anche l uso di un asterisco concatenato non è proprio il massimo.
Secondo me fai prima a gestire la situazione nel momento dell inserimento.
Con dlookup individui se esiste la chiave primaria e di conseguenza, o avverti l utente e gli fai inserire una chiave primaria diversa, oppure crei, tramite vba una chiave univoca.
Anche se sinceramente non riesco proprio a capire la logica di tutto ciò e di come è strutturato il database.
A volte si usano chiavi primarie testuali, ma per dati che già di per se sono doversi per natura, come ad esempio codici fiscali o carte di identità. Non per dati inseriti a piacere dall utente.
Io suggerisco una riscrittura delle tabelle.