Ir para conteúdo
Fórum Script Brasil
  • 0

Como Zerar O Contador Automatico De Id


Guest Guest

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

Tem sim eu queria zerar o meu para ir com os numeros corresto....

você tem que ira na estrutura de tabela e excluir a linha do auto numeração ai é só você criar outro....

Atenção:

Quando você faz esse tipo de correção c você tem alguma consulta ele ira dar pau então você terá que excluir também e fazer outro do mesmo jeito pois ele esta para a tabela antiga e enão para o que você arrumou certo....

há num esquece de fazer um backp antes de fazer isso pois pode de repente dá um pau sei lá algo do tipo e ferrar o que você já fez...

fuizzz....

....Perfect Lion....

Link para o comentário
Compartilhar em outros sites

  • 0

Só aproveitando o tópico....

quem quiser criar um contador personalizado, aí está...

----------------------------

» Como criar e incrementar um campo contador personalizado?

Antes de mais nada, não use um campo do tipo Autonumeração para campos da tabela que precisem de numeração seqüencial ininterrupta, pois a "autonumeração" do Access não foi criada para isso, mas sim para ser usada como Chave Primária de uma tabela.

Embora o campo "autonumeração" não se repita jamais, isso não quer dizer que sua numeração obedeça a uma seqüência ininterrupta. Conforme explicado na pergunta É possível reutilizar um nº deletado de um campo AutoNumeração?, não é possível reutilizar um número deletado de um campo AutoNumeração. Se você apagar algum registro que contenha um campo AutoNumeração, o Access não reutilizará o número, ficando uma brecha na seqüência de numeração.

Vamos supor que você possui 50 registros numa tabela (seu campo autonumeração vai estar em 50). Se você apagar o registro 25 e inserir um novo registro, o Access não volta a utilizar o nº 25, mas sim continua a partir do 51. Esse é um comportamento normal do programa.

Além disso, a organização seqüencial não existe numa tabela de um banco de dados relacional como o Access, já que os registros são gravados sem importar a seqüência lógica. Índices e consultas é que dão uma ordem na apresentação dos registros contidos numa tabela.

Solução:

Se você quiser um campo absolutamente seqüencial, como o nº de uma nota fiscal, você terá de criar uma rotina no seu formulário que incremente o último número gravado na tabela.

Vamos supor que no formulário acoplado à tabela "Contratos" eu tenha uma caixa de texto acoplada ao campo "NumeroContrato". Ao digitar um novo contrato, eu gostaria que o Access somasse 1 ao número anterior e, se não houver nenhum contrato armazenado na tabela, que ele gerasse um número a partir de 1.

Para resolver a questão, insira a expressão abaixo na propriedade Valor padrão da caixa de texto:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;1;DMáx("[NumeroContrato]";"Contratos")+1)

Outra opção, seria criar uma tabela "TabContrato" com o campo "ContratoInicial" que armazena o número inicial dos contratos. Desse modo, a expressão acima ficaria assim:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;DLookup("[ContratoInicial]";"TabContrato");DMáx("[NumeroContrato]";"Contratos")+1)

Solução com exemplo:

No mdb de exemplo, abra o formulário "frmExemplo_Contratos" (Fig.1), que possui uma numeração de contratos do tipo 001/1999; 002/1999 e assim por diante.

Adicione um registro novo e veja que o formulário apresenta o número seguinte: 003/1999. Para conseguir tal efeito, foi utilizada a expressão abaixo na propriedade Valor Padrão da caixa de texto “Número”:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

---------------------------

Sds,

Link para o comentário
Compartilhar em outros sites

  • 0
Só aproveitando o tópico....

quem quiser criar um contador personalizado, aí está...

--------------

Solução:

Se você quiser um campo absolutamente seqüencial, como o nº de uma nota fiscal, você terá de criar uma rotina no seu formulário que incremente o último número gravado na tabela.

Vamos supor que no formulário acoplado à tabela "Contratos" eu tenha uma caixa de texto acoplada ao campo "NumeroContrato". Ao digitar um novo contrato, eu gostaria que o Access somasse 1 ao número anterior e, se não houver nenhum contrato armazenado na tabela, que ele gerasse um número a partir de 1.

Para resolver a questão, insira a expressão abaixo na propriedade Valor padrão da caixa de texto:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;1;DMáx("[NumeroContrato]";"Contratos")+1)

Outra opção, seria criar uma tabela "TabContrato" com o campo "ContratoInicial" que armazena o número inicial dos contratos. Desse modo, a expressão acima ficaria assim:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;DLookup("[ContratoInicial]";"TabContrato");DMáx("[NumeroContrato]";"Contratos")+1)

Solução com exemplo:

No mdb de exemplo, abra o formulário "frmExemplo_Contratos" (Fig.1), que possui uma numeração de contratos do tipo 001/1999; 002/1999 e assim por diante.

Adicione um registro novo e veja que o formulário apresenta o número seguinte: 003/1999. Para conseguir tal efeito, foi utilizada a expressão abaixo na propriedade Valor Padrão da caixa de texto “Número”:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

Tem como fazer isso com ASP?

Como?

Isso seria muito útil mesmo!

Link para o comentário
Compartilhar em outros sites

  • 0
Só aproveitando o tópico....

quem quiser criar um contador personalizado, aí está...

----------------------------

» Como criar e incrementar um campo contador personalizado?

Antes de mais nada, não use um campo do tipo Autonumeração para campos da tabela que precisem de numeração seqüencial ininterrupta, pois a "autonumeração" do Access não foi criada para isso, mas sim para ser usada como Chave Primária de uma tabela.

Embora o campo "autonumeração" não se repita jamais, isso não quer dizer que sua numeração obedeça a uma seqüência ininterrupta. Conforme explicado na pergunta É possível reutilizar um nº deletado de um campo AutoNumeração?, não é possível reutilizar um número deletado de um campo AutoNumeração. Se você apagar algum registro que contenha um campo AutoNumeração, o Access não reutilizará o número, ficando uma brecha na seqüência de numeração.

Vamos supor que você possui 50 registros numa tabela (seu campo autonumeração vai estar em 50). Se você apagar o registro 25 e inserir um novo registro, o Access não volta a utilizar o nº 25, mas sim continua a partir do 51. Esse é um comportamento normal do programa.

Além disso, a organização seqüencial não existe numa tabela de um banco de dados relacional como o Access, já que os registros são gravados sem importar a seqüência lógica. Índices e consultas é que dão uma ordem na apresentação dos registros contidos numa tabela.

Solução:

Se você quiser um campo absolutamente seqüencial, como o nº de uma nota fiscal, você terá de criar uma rotina no seu formulário que incremente o último número gravado na tabela.

Vamos supor que no formulário acoplado à tabela "Contratos" eu tenha uma caixa de texto acoplada ao campo "NumeroContrato". Ao digitar um novo contrato, eu gostaria que o Access somasse 1 ao número anterior e, se não houver nenhum contrato armazenado na tabela, que ele gerasse um número a partir de 1.

Para resolver a questão, insira a expressão abaixo na propriedade Valor padrão da caixa de texto:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;1;DMáx("[NumeroContrato]";"Contratos")+1)

Outra opção, seria criar uma tabela "TabContrato" com o campo "ContratoInicial" que armazena o número inicial dos contratos. Desse modo, a expressão acima ficaria assim:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;DLookup("[ContratoInicial]";"TabContrato");DMáx("[NumeroContrato]";"Contratos")+1)

Solução com exemplo:

No mdb de exemplo, abra o formulário "frmExemplo_Contratos" (Fig.1), que possui uma numeração de contratos do tipo 001/1999; 002/1999 e assim por diante.

Adicione um registro novo e veja que o formulário apresenta o número seguinte: 003/1999. Para conseguir tal efeito, foi utilizada a expressão abaixo na propriedade Valor Padrão da caixa de texto “Número”:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

---------------------------

Sds,

Pessoal

quando uso esse código:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

porque quando o registro chega em 1000 ele vai colocando 1000 pra todo mundo e não obedece a sequencia 1001, 1002, 1003, ?

alguém sabe responder isso por favor ?

Edvaldo

Link para o comentário
Compartilhar em outros sites

  • 0
Só aproveitando o tópico....

quem quiser criar um contador personalizado, aí está...

----------------------------

» Como criar e incrementar um campo contador personalizado?

Antes de mais nada, não use um campo do tipo Autonumeração para campos da tabela que precisem de numeração seqüencial ininterrupta, pois a "autonumeração" do Access não foi criada para isso, mas sim para ser usada como Chave Primária de uma tabela.

Embora o campo "autonumeração" não se repita jamais, isso não quer dizer que sua numeração obedeça a uma seqüência ininterrupta. Conforme explicado na pergunta É possível reutilizar um nº deletado de um campo AutoNumeração?, não é possível reutilizar um número deletado de um campo AutoNumeração. Se você apagar algum registro que contenha um campo AutoNumeração, o Access não reutilizará o número, ficando uma brecha na seqüência de numeração.

Vamos supor que você possui 50 registros numa tabela (seu campo autonumeração vai estar em 50). Se você apagar o registro 25 e inserir um novo registro, o Access não volta a utilizar o nº 25, mas sim continua a partir do 51. Esse é um comportamento normal do programa.

Além disso, a organização seqüencial não existe numa tabela de um banco de dados relacional como o Access, já que os registros são gravados sem importar a seqüência lógica. Índices e consultas é que dão uma ordem na apresentação dos registros contidos numa tabela.

Solução:

Se você quiser um campo absolutamente seqüencial, como o nº de uma nota fiscal, você terá de criar uma rotina no seu formulário que incremente o último número gravado na tabela.

Vamos supor que no formulário acoplado à tabela "Contratos" eu tenha uma caixa de texto acoplada ao campo "NumeroContrato". Ao digitar um novo contrato, eu gostaria que o Access somasse 1 ao número anterior e, se não houver nenhum contrato armazenado na tabela, que ele gerasse um número a partir de 1.

Para resolver a questão, insira a expressão abaixo na propriedade Valor padrão da caixa de texto:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;1;DMáx("[NumeroContrato]";"Contratos")+1)

Outra opção, seria criar uma tabela "TabContrato" com o campo "ContratoInicial" que armazena o número inicial dos contratos. Desse modo, a expressão acima ficaria assim:

=SeImed(DContar("[NumeroContrato]";"Contratos")=0;DLookup("[ContratoInicial]";"TabContrato");DMáx("[NumeroContrato]";"Contratos")+1)

Solução com exemplo:

No mdb de exemplo, abra o formulário "frmExemplo_Contratos" (Fig.1), que possui uma numeração de contratos do tipo 001/1999; 002/1999 e assim por diante.

Adicione um registro novo e veja que o formulário apresenta o número seguinte: 003/1999. Para conseguir tal efeito, foi utilizada a expressão abaixo na propriedade Valor Padrão da caixa de texto “Número”:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

---------------------------

Sds,

Pessoal

quando uso esse código:

=SeImed(DContar("[Número]";"Contratos")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Número]";"Contratos");3)+1) & Ano(Data());"000\/0000"))

porque quando o registro chega em 1000 ele vai colocando 1000 pra todo mundo e não obedece a sequencia 1001, 1002, 1003, ?

alguém sabe responder isso por favor ?

Edvaldo

para zerar o contador. limpe a tabela. vá até ferramentas/utilitários de banco de dados/campactar e reparar. e prontinho

Link para o comentário
Compartilhar em outros sites

  • 0

Srs 

Tive um problema com a access do registro de id meu banco de dados é vinculado a outra tabela de dados as ids se combinam para gerar resultados pegando dados de varias tabelas. então as ids tem de que ser sequenciadas e por causa da busca e não podem ser renumeradas em qualquer sequência. Então segue uma solução para renumerar na ordem de tela, segue o que é mais um procedimento:

Primeiro passo: Abra a tabela. Guia Início >>> Modos de Exibição >>> Clique Modo Design. Desmarque Chave de Registro. Volte no modo Folha de Dados. Exclua a coluna da chave de registro. 

Segundo passo: Ordene as linhas na posição desejada (você pode fazer isso criando uma coluna no " fim de todas" com a sequência numerada para cada linha ai ordena de A à Z).

Terceiro passo: Feche e salve a tabela. 

Quarto passo: Clique na tabela fechada e copie.

Quinto passo: Clique na onde ficam as tabelas e cole. Atribua um nome Ex: "tabela1" Clique OK. Abra a Copia. Confirme a ordem das linhas importante.

Sexto passo: Confirme se a copia tem todos os registros. 

Sétimo passo: Volte abra a tabela original. Delete todas as linha de registro. Lembrando que os registros estão salvos na cópia. 

Oitavo passo: Guia Início >>> Modos de Exibição >>> Clique Modo Design

Nono passo: Na aba que abriu cada linha é uma coluna vá até o fim e crie uma coluna na ultima linha para ser a chave de registro.

Décimo passo: Selecione na linha da coluna Tipo de dados >>> Autonumeração. Clique com o botão direito e Clique Chave de registro.

Décimo Primeiro passo: Feche e salve a tabela. Crie uma nova cópia desta tabela com outro nome Ex: "tabela2". Obs: Zera os registros!!

Décimo Segundo passo: Delete a original, vá na copia "tabela2" recém criada renomeie com o nome da original.

Décimo Terceiro passo: Abra a tabela que agora é a original.

Décimo Quinto passo: Abra a tabela1 verifique a ordem dos registros (importante).

Décimo Sexto passo: Clique na primeira linha pela base para selecionar tudo. Segure o shift clique seta para baixo e selecione todos.

Décimo Sétimo passo: Clique na base de qualquer linha com o botão direto e selecione copiar.

Décimo Oitavo passo: Clique na tabela original na primeira linha e Ctrl + V. Pronto tudo renumerado na ordem definida.

Décimo Nono passo: Feche e salve a tabela original. Abra verifique os registros.

Vigésimo passo: Feche tabela1 e delete. Salve seu Banco de Dados.

Quem gostou fala Show!!!! 

   

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...