SABER PROXIMO CÓDIGO - BD ACCESS

JORGESALES 29/06/2015 09:07:39
#448267
pessoal, tem como saber qual será o próximo
código que será gerado pelo banco de dados?
se usar o rs.recordcount não funciona pois
se tiver registros que foram excluídos a conta
ficará errada.
LUIZCOMINO 29/06/2015 09:10:13
#448268
Resposta escolhida
faça um select no id
exemplo :
[Ô]select id from tabela order by id desc[Ô]

pegue o primeiro registro e acrescente 1

CampoNumerico=Rs([Ô]id[Ô]) + 1

OBS sempre traga somente um registro no select , se estiver usando Access ou SQL faça assim:
[Ô]select top 1 id from tabela order by id desc[Ô]

se for mysql faça assim

[Ô]select id from tabela order by id desc limit 1[Ô]
JORGESALES 29/06/2015 09:41:34
#448269
Luiz, olhe bem, digamos que eu tenha 50 registros
e faça a exclusão do registro de número 50, então
fica com 49 mas o próximo código não será 50 e
sim 51.
LUIZCOMINO 29/06/2015 10:54:19
#448271
sim , exatamente, por isso você tem que fazer o select como eu disse acima , o ID , é o código que identifica aquele registro, passa a estrutura da sua tabela se preferir mas basta trocar o ID pelo nome do identificador da sua tabela.
Caso você não tenha nenhum identificador na tabela teria que criar.
OMAR2011 29/06/2015 11:22:51
#448275
Neste caso, como usa seu ID como numeração automática
sempre vai acontecer isso.é o correto.
Garantia.
MESTRE 29/06/2015 11:43:06
#448276
Faça como o OMAR disse,

Defina o Código como Chave primária como INTEGER Auto_Increment..

Ele sempre vai gerar +1 automático, sem voce precisar colocar ele no Insert..
XLEGENDARY 29/06/2015 14:37:11
#448284
Jorge Sales
pra que isso não ocorra você tem que ter uma tabela que podemos chamar de controle.Com o Auto_increment ao excluir um ID ele irá pular pro próximo ao que foi excluido

você tem que criar um campo sem o increment e adicionar + 1 em um select, e -1 em um delete eu tenho essa função que faz exatamente isso

se quiser me manda seu email que te passo
SIRIOUS 30/06/2015 16:41:49
#448351
[ô]Tem um aplicativo que fiz há bastante tempo, que busca o último número da relação, acrescentando +1:
Dim Numero As Integer
Tabela.Index = [Ô]IndNumero[Ô]
[ô]Index associado ao campo <Numero>
Tabela.Recorcount
[ô]Faz a recontagem, no caso de exclusões.
Tabela.MoveLast
Numero = Format(Tabela!Numero)+1, [Ô]000[Ô])
...
F001E 30/06/2015 18:24:57
#448359
Com Auto_Increment o número nunca irá se repetir. Se excluir no numero 50 nunca mais irá usá-lo novamente e sim o 51. Pensa em uma Base de Dados de Log onde você armazena a vida toda do cara vamos supor do cliente 50 daí você exclui o cliente 50 e add um novo cliente com o mesmo código 50, pronto, o Log da antigo cliente irá fazer parte do novo cliente.....
Tópico encerrado , respostas não são mais permitidas