Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Este tópico descreve o procedimento para classificar endereços IP (Protocolo de Internet) armazenados em um banco de dados Access.

Introdução

Se você trabalha com endereços IP, provavelmente já sabe que não é tão simples quanto trabalhar com texto ou números. Isso ocorre porque um endereço IP é realmente uma coleção de quatro valores numéricos separados por um período (.), em que cada valor é um número entre 0 e 255. A tabela a seguir mostra dados antes de qualquer ordem de classificação ser aplicada.

MachineID

verificado

Localização

Ipaddress

1

...

...

123.4.245.23

2

...

...

104.244.253.29

3

...

...

1.198.3.93

4

...

...

32.183.93.40

5

...

...

104.30.244.2

6

...

...

104.244.4.1

Classificar endereços IP no Access é um desafio porque o Access não fornece um tipo de dados especial para armazenar endereços IP. Embora um endereço IP seja apenas uma coleção de números, você não pode armazenar um endereço IP em um campo numérico. Isso ocorre porque um campo numérico dá suporte apenas a um único ponto decimal (.), enquanto um endereço IP contém três períodos (.). Isso significa que você deve armazenar os endereços em um campo de texto.

Como você armazena endereços IP em um campo de texto, não é possível usar os botões de classificação internos no Access para classificar os endereços de forma significativa. Os botões de classificação sempre classificam valores em um campo de texto em ordem alfabética, mesmo que os caracteres sejam números. Em outras palavras, os endereços são classificados pelo primeiro dígito, depois pelo segundo dígito e assim por diante, em vez dos valores numéricos que compõem o endereço. A tabela a seguir mostra os endereços da tabela anterior classificada em ordem alfabética no campo IPAddress.

MachineID

Ipaddress

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

1

123.4.245.23

4

32.183.93.40

Os endereços que começam com 1 são exibidos antes dos endereços que começam com 2 e assim por diante. A tabela a seguir mostra os endereços na ordem crescente correta .

MachineID

Ipaddress

3

1.198.3.93

4

32.183.93.40

5

104.30.244.2

6

104.244.4.1

2

104.244.253.29

1

123.4.245.23

Para facilitar a compreensão das etapas envolvidas na classificação desses endereços, você quebra os endereços IP em quatro partes numéricas. Os endereços devem ser classificados pela primeira parte e, em seguida, para cada valor na primeira parte, depois pela segunda parte e assim por diante. A tabela mostra cada parte em uma coluna diferente e, como as colunas contêm valores numéricos simples, torna-se possível classificar as colunas da esquerda para a direita em ordem crescente, conforme mostrado na tabela a seguir.

PartI

PartII

PartIII

PartIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23

Classificar as quatro partes separadamente é o truque por trás da classificação de endereços IP. No procedimento a seguir, você cria uma consulta que, além do campo endereço IP, inclui quatro colunas calculadas em que cada coluna armazena uma parte dos valores de endereço. A primeira coluna calculada conterá a primeira parte numérica do endereço, a segunda coluna calculada manterá a segunda parte numérica do endereço e assim por diante. Em vez de classificar os registros pelo campo IPAddress, a consulta classificará os registros pelas quatro colunas calculadas.

Criar a consulta

Você criará uma consulta selecionada chamada IPAddresses classificados que exibe os registros em ordem crescente de endereços IP. Suponha que o banco de dados atual tenha uma tabela chamada MachineDetails que inclui um campo de texto chamado IPAddress.

  1. Clique em Criar > Design de Consulta

  2. Selecione Adicionar Tabelas (Mostrar Tabela em Access 2013 ) e arraste Detalhes do Computador para a seção superior do Modo de Exibição de Design.

  3. Arraste os campos MachineID e IPAddress para a grade de design de consulta.

  4. Agora você está pronto para adicionar as colunas calculadas. Na primeira coluna em branco à direita, digite a expressão PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) na linha Campo . A expressão retorna os caracteres anteriores ao primeiro período (.) no campo IPAddress.

    Agora, examine a expressão. Como você não sabe quantos dígitos compõem a primeira parte do endereço, você usa a função InStr para encontrar a posição do primeiro período. A subtração 1 (para excluir o período) retorna o número de dígitos na primeira parte. Em seguida, você usa esse número com a função Esquerda para extrair tantos caracteres, partindo do caractere mais à esquerda, do campo IPAddress. Por fim, você chama a função Val para converter os caracteres retornados pela função Esquerda em um número. Essa última etapa é necessária porque o tipo de dados subjacente é Texto.

  5. Salve a consulta clicando em Salvar na Barra de Ferramentas de Acesso Rápido. É uma boa ideia fazer isso após cada etapa intermediária.

  6. Adicione a coluna para a segunda parte do endereço. Na coluna à direita de PartI, digite PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) na linha Campo . A expressão retorna os caracteres localizados entre o primeiro e o segundo períodos no campo IPAddress.

    Novamente, examine a expressão. Como você não sabe quantos dígitos compõem a segunda parte do endereço ou exatamente onde a segunda parte é iniciada (porque você não tem quanto tempo a primeira parte é), você usa a função InStr para encontrar as posições dos períodos. Em seguida, você usa a função Mid para extrair os caracteres que seguem o primeiro período, mas precedem o segundo período. Por fim, você chama a função Val para converter os caracteres retornados pela função Mid em um número. Essa última etapa é necessária porque o tipo de dados subjacente é Texto.

  7. Adicione a coluna para a terceira parte do endereço. Na coluna à direita de PartII, digite PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) na linha Campo . A expressão retorna os caracteres localizados entre o segundo e o terceiro períodos no campo IPAddress.

    Novamente, examine a expressão. Como você não sabe quantos dígitos compõem a terceira parte do endereço ou exatamente onde a terceira parte é iniciada (porque você não sabe quanto tempo a primeira e segunda partes são), você usa a função InStr para encontrar as posições dos períodos. Em seguida, você usa a função Mid para extrair os caracteres que seguem o segundo período, mas precedem o terceiro período. Por fim, você chama a função Val para converter os caracteres retornados pela função Mid em um número. Essa última etapa é necessária porque o tipo de dados subjacente é Texto.

  8. Adicione a coluna para a quarta e última parte do endereço. Na coluna à direita de PartIII, digite PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) na linha Campo . A expressão retorna os caracteres que seguem o último período.

    Novamente, examine a expressão. A chave é localizar o local do terceiro período e, em seguida, extrair todos os caracteres que o seguem. Como você não sabe exatamente onde o terceiro período está localizado, você chama a função InStr três vezes para encontrar a posição do terceiro período. Em seguida, você usa a função Len para calcular o número de dígitos na quarta parte. O número de dígitos retornados é então usado com a função Right para extrair muitos caracteres da parte direita do campo IPAddress. Por fim, você chama a função Val para converter os caracteres retornados pela função Mid em um número. Essa última etapa é necessária porque o tipo de dados subjacente é Texto.

  9. Defina a linha Classificar de todas as quatro colunas calculadas como Crescente.

    Importante    A linha Classificar da coluna IPAddress deve ficar em branco.

    Se você quiser classificar por outros valores de campo, além dos endereços, coloque os campos à esquerda ou à direita de todas as quatro colunas calculadas. Não coloque os outros campos de classificação entre as colunas calculadas.

  10. A próxima etapa é ocultar as quatro colunas calculadas da planilha de dados. Mas antes de fazer isso, alterne para a exibição Datasheet para ver o resultado das expressões nas colunas calculadas. A tabela a seguir mostra as colunas que você verá na exibição Datasheet.

    MachineID

    Ipaddress

    PartI

    PartII

    PartIII

    PartIV

    3

    1.198.3.93

    1

    198

    3

    93

    4

    32.183.93.40

    32

    183

    93

    40

    5

    104.30.244.2

    104

    30

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    29

    1

    123.4.245.23

    123

    4

    245

    23

  11. Volte para a exibição Design e desmarque a caixa marcar na linha Mostrar de todas as quatro colunas calculadas. Isso impede que as colunas calculadas sejam exibidas no modo de exibição Datasheet.

  12. Opcionalmente, especifique critérios para excluir registros da consulta.

  13. Alterne para a exibição Datasheet para ver os registros em ordem classificada. Você verá os registros classificados corretamente na ordem crescente dos endereços IP.

Mais usos para endereços IP classificados

Validar endereços IP durante a entrada de dados

Se você quiser validar endereços sem escrever código, poderá fazê-lo em uma extensão limitada definindo a propriedade InputMask do campo como ###.#######; 0;" " e a propriedade Format do campo endereço IP para &&&&&&&&&&&&.

O que a máscara de entrada faz? Quando você começa a digitar no campo de endereço, a máscara de entrada impede que você insira caracteres diferentes de números e espaços entre os três períodos. Se uma parte numérica for um número de dois dígitos, deixe o terceiro dígito em branco ou digite um espaço. Observe que essa máscara de entrada não avisará o usuário se ele ignorar digitar uma ou mais partes do endereço ou digitar apenas espaços em vez de um valor numérico. Por exemplo, "345. .3. " seria aceito como um endereço válido.

O que o formato de exibição faz? Quando você termina de digitar e sai do campo, o formato de exibição remove os espaços no endereço e exibe apenas os números e períodos. Portanto, se você digitou "354.35 .2 .12", o endereço será exibido como "354.35.2.12". Observe que, se você clicar dentro do endereço ou pressionar F2 (para inserir o modo de edição) quando o endereço estiver selecionado, os espaços reaparecerão.

Dica: Se você quiser copiar um endereço, vá para a coluna ou controle anterior, pressione TAB para selecionar o endereço formatado e clique em Copiar. Ao fazer isso, você não copiará a cadeia de caracteres de endereço que contém espaços.

Classificar registros em um formulário ou relatório por endereços IP

Se você precisar criar um formulário ou um relatório no qual os registros sejam classificados por endereços IP, baseie o novo objeto em uma consulta que classifica endereços conforme descrito anteriormente, em vez de na tabela que armazena os endereços.

Início da Página

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×