AUTOINCREMENT ACCESS

USUARIO.EXCLUIDOS 01/12/2006 10:30:17
#187346
Estou iniciando estudos para migrar de DBase para ACCESS
Uma das tabelas (muito simples) tem os seguintes campos:


IdHist ===== autonumeração
IdCli ===== número
DataHist ===== data
Historico ===== Memorando


Antes de transferir a massa de dados, criei as tabelas manualmente, via ACCESS e introduzi (também manualmente) os primeiros registros.

Ontem eu havia introduzido 55 históricos e o idHist apresentou a numeração de 1 a 55 (perfeito).

Hoje introduzi mais dois históricos que receberam os números 258244 e 258245. Eu esperava que fosse 56 e 57.

Onde está o erro? No meu entendimento de como a coisa funciona ou no ACCESS?

Se for no ACCESS - o que devo fazer para descobrir a causa e evitá-la?
USUARIO.EXCLUIDOS 01/12/2006 13:06:51
#187398
Nunca me aconteceu este erro, mas um dica para que a numeração fique correta é vc excluir o campo autonumeração e inserí-lo novamente que ficará em sequência...

espero que te ajude
USUARIO.EXCLUIDOS 01/12/2006 16:41:09
#187461
Não entendi uma coisa, esses dois registros vc inseriu manualmente ou direto do DBase, se foi pelo DBase, diga melhor a forma como fez, se foi manualmente, chama um exorcista pra sua máquina...[S68]

Outra coisa:
Citação:

Estou iniciando estudos para migrar de DBase para ACCESS



Cara, uma dica, já que quer sair do DBase, por que não vai logo para um banco de dados de verdade? Eu aconselho o FireBird, que é free, fácil de mexer, robusto e super confiável; mas tb tem o MySQL ou SQL Server que são bons...flw
USUARIO.EXCLUIDOS 01/12/2006 17:19:37
#187480
Citação:

CHPMOTTA escreveu:
Nunca me aconteceu este erro, mas um dica para que a numeração fique correta é vc excluir o campo autonumeração e inserí-lo novamente que ficará em sequência...

espero que te ajude



Não só ajudou como matou a charada. Funcionou direitinho. Obrigado.

Só não encerro porque é importante descobrir a causa. Não dá pra confiar num sistema com uma m**** dessa.

==============================================================================

Citação:

MATIOLI escreveu:
Não entendi uma coisa, esses dois registros vc inseriu manualmente ou direto do DBase, se foi pelo DBase, diga melhor a forma como fez, se foi manualmente, chama um exorcista pra sua máquina...



Meu... a inclusão foi MANUAL. Só que antes dela houve uma importação do EXCEL. (eu EXPORTEI para uma planilha, apaguei os registros, compactei o banco de dados e IMPORTEI novamente - quando fiz isso, tinha 55 registros. Quando abri, tinha 55 registros. Quando incluí, a numeração do registro incluido era o tal 258.244)

No passado eu já tive algumas experiências em que a importação do EXCEL gerou um arquivo com um tamanho mínimo (não lembro se era 32KB ou 64KB). Ou seja, quando a planilha tinha poucas linhas, eram incluidas linhas vazias ao final.

Essa é uma possibilidade.

==============================================================================

Citação:

MATIOLI escreveu:
Cara, uma dica, já que quer sair do DBase, por que não vai logo para um banco de dados de verdade? Eu aconselho o FireBird, que é free, fácil de mexer, robusto e super confiável; mas tb tem o MySQL ou SQL Server que são bons...flw



A escolha não é minha - é do cliente. Por mim eu continuava no DBase que eu leio até como arquivo binário, se for o caso.

Para encerrar:

Obrigado pelo sempre precioso comentário e eterna boa vontade.

==============================================================================

Repito a questão pendente: Alguma pista para a causa?

Algo que reforce, exclua ou confirme a minha suspeita com o EXCEL?

Alguma outra hipótese além da "feitiçaria"?????
SILVIO.GARCIA 01/12/2006 17:35:35
#187486
Resposta escolhida
se vc deletou uma linha da tabela o campo fica no mesmo e adicionado um novo registro ele vai dar diferença no contador para a quantidade de linhas dentro da tabela.
USUARIO.EXCLUIDOS 01/12/2006 23:05:13
#187550
Citação:

SILVIO GARCIA escreveu:
se vc deletou uma linha da tabela o campo fica no mesmo e adicionado um novo registro ele vai dar diferença no contador para a quantidade de linhas dentro da tabela.



Aqui está um conceito interessante - e lógico.

Pelo que entendi, se eu tenho 200 registros na tabela e deleto os últimos 100 o próximo será 201 e não 101. A pergunta é: Se após deletar e antes de incluir for feita uma compactação do DB essa lógica se mantém ou o último registro do arquivo passa a ser o indicador para o próximo?

Agora é interessante - aprender sempre é. Mas esse conceito explicaria um acréscimo de alguns números - nunca 250.000. A tabela nunca teve mais do que duas centenas de registros. Supondo a hipótese do EXCEL ter gerado linhas nulas teríamos um máximo de 50.000 registros fantasma - o número é 5 vezes maior.

Esse aspecto ainda não está claro - e me intriga.

Mas agradeço - e muito - a sua dica.
Tópico encerrado , respostas não são mais permitidas