Classificar endereços IP

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Este tópico descreve o procedimento utilizado para classificar endereços IP armazenados em um banco de dados do Microsoft Office Access 2007.

Neste artigo

Introdução

Criar a consulta

Usos mais para endereços IP classificados

Introdução

Se você trabalha com os endereços IP, provavelmente já sabe que não é a mesma coisa de trabalhar com texto ou números. Isso 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 os dados antes da aplicação de qualquer ordem de classificação.

ID da máquina

Funcionário

Local

Endereço IP

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


O armazenamento de endereços IP no Access é um desafio porque o Access não fornece um tipo de dados especial para o armazenamento de endereços IP. Embora um endereço IP seja apenas uma coleção de números, você não pode armazenar endereços IP em um campo numérico. Isso porque um campo numérico fornece suporte apenas a um único ponto decimal (.); o endereço IP tem três pontos (.). 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 pode usar os botões de classificação internos do Access para classificá-los de uma forma significativa. Os botões de classificação sempre classificam valores em um campo de texto em ordem alfabética, mesmo se os caracteres forem 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 de valores numéricos que compõem o endereço. A tabela a seguir mostra os endereços da tabela anterior classificados em ordem alfabética no campo Endereço IP.

ID da máquina

Endereço IP

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 daqueles que começam com 2 e assim por diante. A tabela a seguir mostra os endereços na ordem decrescente correta.

ID da máquina

Endereço IP

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, separe 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 sucessivamente. A tabela mostra cada parte em uma coluna diferente e, como as colunas mantêm valores numéricos simples, torna-se possível classificar as colunas da esquerda para a direita em ordem crescente, como mostrado na tabela a seguir.

Parte I

Parte II

Parte III

Parte IV

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 é a melhor sugestão para classificação de endereços IP. No procedimento a seguir, você cria uma consulta que, além do campo de endereço IP, inclui quatro colunas calculadas em que cada coluna armazena uma parte dos valores do endereço. A primeira coluna calculada contém a primeira parte numérica do endereço; a segunda coluna calculada contém a segunda parte numérica do endereço e assim por diante. Em vez de classificar os registros pelo campo Endereço IP, a consulta classificará os registros pelas quatro colunas calculadas.

Início da página

Criar a consulta

Você criará uma consulta de seleção chamada Endereços IP Classificados que exibe os registros na ordem crescente de endereços IP. Assuma que o banco de dados atual tem uma tabela chamada MachineDetails que inclui um campo de texto chamado Endereço IP.

  1. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  2. Na caixa de diálogo Mostrar Tabela, na guia Tabelas, clique em MachineDetails e, em seguida, clique em Adicionar. Feche a caixa de diálogo.

  3. Arraste os campos ID da Máquina e Endereço IP para a grade de design da consulta.

  4. Agora você está pronto para adicionar as colunas calculadas, Na primeira coluna à 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 ponto (.) no campo Endereço IP.

    Agora, examine a expressão. Porque você não sabe quantos dígitos constituem a primeira parte do endereço, você usa o função InStr para encontrar a posição do primeiro período. Subtraindo 1 (para excluir o período) retorna o número de dígitos na primeira parte. Você use esse número com o a função esquerda para extrair que muitos caracteres, iniciando do caractere à esquerda, no campo endereço IP. Finalmente, você chama o função Val para converter os caracteres retornados pela função esquerda em um número. A última etapa é necessária porque o tipo de dados subjacente é texto.

  5. Salve a consulta clicando em Salvar na Barra de Ferramenta do Quick Access. É uma boa idéia para isso depois de cada etapa intermediária.

  6. Adicione a coluna para a segunda parte do endereço. Na coluna à direita de Parte I, 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 ponto no campo Endereço IP.

    Novamente, examine a expressão. Porque você não sabe quantos dígitos compõem a segunda parte do endereço ou exatamente onde a segunda parte é iniciado (porque você não quanto tempo a primeira parte é), você usar a função InStr para encontrar as posições dos períodos. Você usar o função Mid para extrair os caracteres após o primeiro período, mas preceda o segundo período. Por fim, você pode chamar a função Val para converter os caracteres retornados pela função ext. texto em um número. A ú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 Parte II, digite PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".")+1,[IPAddress],".")+1,InStr(InStr(InStr(1,InStr(InStr(1,[IPAddress],".")+1,[IPAddress],".")+1")-InStr(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 ponto no campo Endereço IP.

    Novamente, revise 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 começa (porque você não sabe o comprimento da primeira e da segunda partes), use a função InStr para localizar as posições dos pontos. Use também a função Mid para extrair os caracteres que seguem o segundo ponto, mas precedem o terceiro ponto. Finalmente, chame 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 à direta de Parte III, 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 seguintes ao último ponto.

    Novamente, examine a expressão. A chave é encontrar o local do terceiro período e, em seguida, extrair todos os caracteres que o seguem. Porque você não souber exatamente onde o terceiro período está localizado, você chamar a função InStr três vezes para localizar a posição do terceiro período. Você usar o função Len para calcular o número de dígitos na parte quarto. O número de dígitos retornado é usado com a função Right para extrair tantos caracteres de parte direita do campo de endereço IP. Por fim, você pode chamar a função Val para converter os caracteres retornados pela função ext. texto em um número. A ú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 Endereço IP deve ser deixada em branco.

    Se você quiser classificar pelos valores de outro 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 folha de dados. Mas antes de fazer isso, alterne para o modo Folha de Dados para ver o resultada das expressões nas colunas calculadas. A tabela a seguir mostra as colunas que você verá no modo Folha de Dados.

ID da máquina

Endereço IP

Parte I

Parte II

Parte III

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

  1. Retorne ao modo Design e desmarque a caixa de seleção na linha Mostrar de todas as quatro colunas calculadas. Isso impede que as colunas calculadas sejam exibidas no modo Folha de Dados.

  2. Como opção, especifique os critérios para excluir registros da consulta.

  3. Alterne para o modo Folha de Dados para ver os registros em ordem classificada. Você verá os registros classificados corretamente na ordem crescente de endereços IP.

Início da página

Mais usos para os endereços IP classificados

Validar endereços IP durante a entrada de dados

Se você deseja validar endereços sem escrever código, você pode fazer isso limitado, definindo a propriedade máscara de entrada do campo #. ## #. # # #. # # #; 0; " " e a propriedade formato do campo de 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 o impede de digitar caracteres diferentes de números e espaços entre os três pontos. 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 avisa o usuário se ele pular uma ou mais partes do endereço ou digitar somente 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 os pontos. Então, se você digitou "354.35 .2 .12 ", o endereço é exibido como "354.35.2.12". Observe que, se você clicar dentro do endereço ou pressionar F2 (para entrar no modo de edição) quando o endereço for selecionado, os espaços serão reexibidos.

Dica : Se você quiser copiar um endereço, mova para a coluna ou o controle anterior, pressione TAB para selecionar o endereço formatado e, em seguida, clique em Copiar. Fazendo isso, você não copiará a seqüência de endereço que contém os espaços.

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

Se for necessário criar um formulário ou um relatório no qual os registros serão classificados por endereço IP, baseie o novo objeto em uma consulta que classifique endereços como descrito anteriormente, em vez da tabela que armazena os endereços.

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×