Como definir o primeiro valor da Numeração automática no Access?


9

Não preciso redefinir o valor de AutoNumeração como esta pergunta , mas gostaria de definir primeiro o número como:

1001

Que então aumenta como normal:

1001

1002

1003

...

Como faço para fazer isso no Access 2010?


5
Não é uma resposta, mas um aviso: a numeração automática não foi projetada para ser gerenciada dessa maneira. Eu já vi inúmeras pessoas experimentando. Ele nunca funciona porque o banco de dados fará coisas estranhas incrementando algumas vezes (gravações com falha ainda aumentam o número, por exemplo). A numeração automática não garante que os números de registro sejam consecutivos. De fato, em casos raros , nem garante que o número seja único. É muito útil para criar uma chave primária para uma tabela pequena. É um pouco arriscado para mesas grandes. É absolutamente horrível usar como um campo de dados real. Ele
Bacon Bits

@BaconBits ... para que serve então o AutoNumber?
James Mertz

Resto do comentário do @ BaconBits: quando você vê artigos como este quando algo fica em forma de pêra, porque as pessoas esperam que a Autonumber seja algo que não é. Se você precisar gerar números dessa maneira, escreva as consultas no banco de dados para fazer isso corretamente.
Stack Overflow está morto

Respostas:


16

Embora o Access não ofereça essa função nativamente, ela pode ser obtida por meio de uma consulta, como a seguinte:

CREATE TABLE TableThatIncrements
(
Id AUTOINCREMENT(1001,1)
)

Isso criará uma única tabela chamada "TableThatIncrements" com uma única coluna, chamada "Id". Agora você pode usar o editor de tabelas para adicionar propriedades e / ou outras colunas.

mudança

AUTOINCREMENT(x,y)

para atender às suas necessidades, onde xestá o número de incremento inicial e yo número com o qual incrementar. assimAUTOINCREMENT(100,5) , produzirá: 100, 105, 110, 115, etc.

Se você deseja alterar uma tabela existente, use a seguinte consulta. Verifique se a guia da tabela específica está fechada para que o Access possa travá-la e alterá-la.

ALTER TABLE TableThatIncrements
   ALTER COLUMN Id AUTOINCREMENT(1001,1)

Você pode executar uma consulta no Access, fazendo o seguinte:

  1. Vá para a guia "Criar" e clique em "Design de consulta"
    insira a descrição da imagem aqui

  2. Basta fechar a janela que aparece, que pede para você selecionar as tabelas, não precisamos disso.

  3. Vá para a guia "Design" e clique no botão com a seta até obter uma tela de entrada de texto. (Por padrão, ele diz SELECT;).
    insira a descrição da imagem aqui

  4. Exclua o texto padrão e cole a consulta acima.

  5. Clique em "Executar".
    insira a descrição da imagem aqui


boa resposta, mas isso cria uma nova tabela ... ou estou errado? Isso pode ser feito dentro de uma tabela já criada?
James Mertz

@KronoS Atualizei minha resposta
estouro de pilha está morto

2

1- Crie a tabela1 2- Vá para criar -------> consulta de projeto. 3- Feche a tabela 4- Vá para SQl de cima. 5- Após esse código.

ALTER TABLE [TABELA1] ALTER COLUMN [Id] COUNTER (8982,1)


Parece ser o mesmo que a resposta aceita, exceto pelo uso de uma palavra-chave diferente (e a outra é muito melhor formatada). Sua resposta é realmente diferente? Você pode explicar como? Sua resposta é melhor? Por quê? Por favor, não responda nos comentários; edite sua resposta para torná-la mais clara e completa.
Scott

@Scott Na verdade, eles são um pouco diferentes: ALTER COLUMN Id AUTOINCREMENT (1001,1) e ALTER COLUMN [Id] COUNTER (8982,1) veem a palavra AUTOINCREMENT e COUNTER, mas ambos funcionam como esperado
willy wonka em

1
@willyw: Certo; Eu disse "o mesmo ... exceto pelo uso de uma palavra-chave diferente ".
Scott

@ Scott ops sim, você está certo ... eu estava lendo muito rápido desculpe ;-)
willy wonka 20/01

1

Este site tem uma maneira muito simples de iniciar sua numeração automática com o número que desejar: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Você cria uma consulta com uma expressão que informa ao campo de numeração automática para alterar

"Primeiro, execute esta consulta:

INSERIR EM tblName (ID) SELECT 999 AS Expr1

Onde tblName é o nome da tabela e ID é o nome do campo AutoNumeração.

Em seguida, execute uma segunda consulta para excluir a linha que você inseriu:

DELETE FROM tblName WHERE ID = 999;

(Como alternativa, você pode simplesmente abrir a tabela e excluir manualmente a linha que inseriu.)

Agora, o próximo registro adicionado à tabela recebe o valor 1000.

Este método funciona com uma nova tabela ou com uma tabela cujo AutoNumeração ainda não atingiu o valor de propagação. (Obviamente, o campo de ID das linhas existentes não será alterado, mas as linhas subsequentes começarão com 1000.) "


0

Você precisa enganar o Access porque ele pressupõe que você não está interessado em uma numeração automática diferente daquela que ela fornece.

Você precisará iniciar a tabela com a numeração automática personalizada, que exigirá alguma configuração. Mas assim que estiver pronto, você pode continuar adicionando a partir daí.

O Google "acessa a alteração automática de início automático" e você encontrará várias opções para fazer isso. A maioria depende da criação de uma consulta anexa para modificar o campo.

Crie a primeira tabela que contém o campo do tipo de contador que você deseja iniciar em outro número. Não insira nenhum registro. Crie uma segunda tabela, com um único campo de número inteiro longo que tenha o mesmo nome que o campo do contador na primeira tabela. Crie um registro na segunda tabela digitando um número um menor que o número em que você deseja iniciar o contador na primeira tabela. Crie uma consulta anexada, para anexar o registro na segunda tabela à primeira tabela e execute-o Exclua a segunda tabela, exclua o registro que você anexou à primeira tabela e comece a inserir dados.

No MVPS.org: http://access.mvps.org/access/tables/tbl0005.htm

Se você não deseja criar uma consulta anexada, sempre pode configurar a tabela e copiar e colar 1000 linhas de dados fictícios do excel, excluir os registros até chegar ao número 1001 e prosseguir a partir daí.

UPDATE: Adicionando explicação por motivo

O motivo pelo qual a numeração automática é definida apenas para iniciar a partir de 1 é que o campo de numeração automática deve ser usado como um campo de referência interno e, nas boas práticas do banco de dados, geralmente não deve ser usado de nenhuma forma visível publicamente. É usado nos casos em que ainda não existe um item exclusivo em uma determinada tabela para criar uma entrada exclusiva pela qual a tabela pode ser pesquisada e indexada.


Tem que haver uma maneira mais fácil de fazer isso ....
James Mertz

Suponho que a boa notícia é que, se você precisar criar várias tabelas com esse número automático, poderá simplesmente criar uma, salvá-la em um arquivo de banco de dados "modelo" e copiá-la para novos arquivos de banco de dados conforme necessário.
Music2myear 24/05

0

Este é um tópico bastante antigo, mas ainda aparece como um dos três principais resultados de pesquisa do Google.

Um motivo pelo qual um usuário pode querer alterar o valor de um campo de numeração automática é corrigir um erro causado pela edição do banco de dados. Quando um administrador desejar fazer algumas alterações importantes em um front end de um banco de dados, esse administrador poderá fazer cópias de todas as tabelas relacionadas e redirecionar uma cópia de desenvolvimento do front end para esses back-ends. Se as alterações forem suficientes, ele poderá substituir a cópia de produção do front end por sua cópia, redirecionando todas as tabelas vinculadas após o teste.

Não tem problema, certo? Bem, o incremento da numeração automática permanece com o front end. Portanto, se o lado da produção apenas aumentar a numeração automática em 50, 500 ou 5000 números enquanto o administrador estava trabalhando na cópia, a nova cópia de produção tentará novamente os mesmos números e não poderá inserir itens nesses campos, um de cada vez, até que fique "claro". Copie 50, 500 ou 5000 linhas de dados do Excel e tente colá-lo. Irá ocorrer um erro em cada linha (não se esqueça de suprimir mais mensagens quando aparecer), mas o número automático aumentará nessa quantidade e você estará bem ir novamente. Se você estiver usando numeradores automáticos dessa maneira, seria recomendável aumentar os números para qualquer que seja o banco de dados de produção antes de substituí-lo com sua cópia de desenvolvimento.

Essa também é uma maneira de iniciar o número automático em algo maior que 1. Como nos velhos tempos de definir o contador de visitas à página em 17.479 na página inicial do Geocities, quando na verdade só foi visitado 16 vezes. Por você.


0

Uma maneira simples de obter algo semelhante é ter um campo de Autonumeração (por exemplo, "ID") e um segundo campo calculado (por exemplo, "ItemID") e inserir a fórmula "1000+ [ID]" para o campo calculado. Agora, esse novo campo rastreará automaticamente o campo Numeração automática, mas começará a partir de 1001 em vez de 1.


0

Acredito que isso possa atingir seu intervalo de incremento personalizado criando primeiro uma tabela oculta que manterá o intervalo inicial de incrementos automáticos começando de zero à sua escolha, por exemplo. essa tabela manterá de 0 a 1050. Depois, você começará a incrementos de 1055, 1060, 1065 etc. Você ocultará essa parte dos dados da tabela. Espero que isto ajude. Parece que o Access foi projetado para parecer inicialmente do zero, à medida que surgirão conflitos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.