Como disse o Barto, se for usar tabela o negocio eh usar Campo Autonumerção mesmo, eh mais correto.
So que Tive um problema usando ADO, quando eu usava access com DAO, eu conseguia pegar o valor do campo autonumeração antes do update, exemplo:
Tabela.addnew
var = Tabela![Codigo]
Tabela![campo2] = var2
Tabela![campo3] = var3...etc...
Tabela.Update
neste exemplo a DAO conseguia me retornar o valor do campo Codigo antes do Update, mas quando mudei de banco (Firebird) ou mesmo se fosse usar o Access, com a ADO, isso nao eh possivel, ele me retorna sempre nulo...tentei varios comandos como tentar ponteiros de localização ,mas em rede nao funcionaria, nao sentia segurança quanto a pegar o numero correto.
Pensei numa forma, gravar o usuario, data e hora que o registro foi gravado, ou mais alguma referencia dependendo da necessidade, poderia colocar mais uma chave como referencia, o nome da maquina por exemplo, e depois de gravado o registro localizar por estas chaves de registro, eu ACHO pelo menos que nenhum usuario vai gravar uma ficha na mesma data, hora e maquina, e o sistema procurar no mesmo instante....creio eu..rs, mas ate agora deu certo...se alguem tiver uma maneira tecnica melhor me corrija..