Begin Transaction Do While .T. m.Codigo = GerarCodigo("clientes") Select Codigo From Clientes Where Codigo = m.Codigo Into Array Repetido If _Tally=0 Exit EndIf EndDo m.Nome = ThisForm.Nome.Value Insert Into Clientes (Codigo, Nome) Values (m.Codigo, m.NOme) End TransactionA idéia é mais ou menos essa aí... Sempre teste antes de gravar e se estiver repetido, chame novamente a rotina para gerar o código.