GARANTIR DESCONTO

Fórum auto numeração em access #243934

21/07/2004

0

aee galera.. qual a melhor forma de fazer uma autonumeracao tipo no cadastro de clientes cada um vai ter o codigo .. qria q isso gerasse automaticamente como faço isso em delphi? usando Access e ADO??

vlw
galera


Slack

Slack

Responder

Posts

21/07/2004

Sandra

slack,

No access existe o tipo de campo ´autonumeração´... não poderia ser feito diretamente com ele? Se for o caso, basta utilizá-lo no momento da criação da tabela.


Responder

Gostei + 0

31/01/2005

Alexsandro

meus amigos,

Criei uma tabela Access com o campo auto incrmento, mas quando vou incluir um novo registro o campo chave não está incrementado. O que preciso fazer no componente? Tem algum tratamento?

Muito Obrigado,

Alex


Responder

Gostei + 0

01/02/2005

Sandra

:shock: :P Nossa, faz tempo que respondi este tópico!


Alexsandro,

Que eu me lembre, não há necessidade de nenhum tratamento nos componentes de acesso, pelo menos no programainha (bem simples mesmo) que fiz. [b:331b9cfb3a]Acho[/b:331b9cfb3a] que o código só aparecia depois que os dados são gravados na tabela.

Porém, quais componentes está usando?


Responder

Gostei + 0

01/02/2005

Alexsandro

Oi Sandra,

Estou usando um campo DBEDIT do Delphi. Já disseram aqui que a auto numeração só aprece depois de eu salvar os dados, mas não é isso que eu quero. Eu gostaria de ao pressionar o botão de incluir que o delphi me trouxesse automaticamente o novo registro com o novo código...

Agradeço sua ajuda.

Alex


Responder

Gostei + 0

01/02/2005

Unk

Não use a auto numeração, faça uma rotina para incrementar em tempo de execução!


Responder

Gostei + 0

01/02/2005

Alexsandro

Pessoal,

Percebi que não tem jeito, eu preciso implementar na mão o recurso da auto-numeração, e por isso gostaria de saber em qual evento devo implementar a rotina. Vocês teriam algum exemplo?

Obrigado,

Alex


Responder

Gostei + 0

01/02/2005

Alexsandro

Pessoal,

Percebi que não tem jeito, eu preciso implementar na mão o recurso da auto-numeração, e por isso gostaria de saber em qual evento devo implementar a rotina. Vocês teriam algum exemplo?

Obrigado,

Alex


Responder

Gostei + 0

02/02/2005

Sandra

Alex,

Experimente esse exemplo bem simples, no evento onNewRecord da tabela que necessita da auto incrementação:

with Query1 do begin
  Close;
  SQL.Text := ´Select Max(SeuCampo) from SuaTabela´;
  Open ;
  If Fields[0].isNull then
    SuaTabela.FieldByName(´SeuCampo´).asInteger := 1
  else
    SuaTabelaSeuCampo.AsInteger := Fields[0].AsInteger + 1;
end;


Espero que ajude.


Responder

Gostei + 0

03/02/2005

Alexsandro

Muito Obrigado Sandra,

Alex


Responder

Gostei + 0

03/02/2005

Icheuk

Caro Alexsandro.

Talvez o tipo de problema que voce teve foi por ter outras tabelas associadas a ela e por isso precisa desta chave(auto incremento) coreto, eu ja tive este problema.

Qual solucao que achei mais viavel, dentro do meu banco de dados eu criei um campo denominado CHAVE neste campo eu gera um numero composto por (Empresa+Usuario+data+Hora) pois o sistema é multi empresa, ou seja desta forma nao vai haver duplicidade ok.

Bom no momento que adicionei um registro o campo auto incremente ainda nao foi criado pois o access deve garantir que se o usuario cancelar a operacao este numero de auto incremente nao vai ser perdido ou seja ele so disponibiliza o numero ao gravar o registro efetivamente, pois voce pode estar em rede com varios usuarios concorrendo ao mesmo tempo por um registro gravado, mas voltando a logica.

Esta chave eu guardo em uma variavel no sistema e assim que gravar o registro e nao houver nenhum erro na gravacao eu executo uma pesquisa neste registro atraves desta chave, neste momento eu passo a ter o codigo do auto incremente e posso associa-lo a outras tabelas relacionadas a este cadastro.

De qualquer forma a Solucao da Sandra tambem é bem legal.

Eu cheguei a esta solucao devido a outras necessidades que possuia no momento do desenvolvimento.

Mas espero ter esclarecido a logica do access para disponibilizar a chave de auto incremente apenas apos gravar o registro efetivamente.

Um grande abraco e boa sorte.

Ivan


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar