Classificar endereços IP no Access

Observação: Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. As informações foram úteis? Dê sua opinião no final desta página. Aqui está o artigo em inglês para facilitar a referência.

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

Introdução

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

ID do computador

Employee

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

Endereços IP no Access de classificação é um desafio porque o Access não oferece um tipo de dados especial para armazenar endereços IP. Embora um endereço IP é apenas um conjunto de números, você não pode armazenar um endereços IP em um campo numérico. Isso ocorre porque um campo numérico dá suporte a apenas um único casa decimal (.), ao passo que um endereço IP contém três pontos (.). Isso significa que você deve armazenar os endereços em um campo de texto.

Porque você armazena endereços IP em um campo de texto, você não pode usar os botões Classificar internos no Access para classificar os endereços de uma maneira significativa. Os botões Classificar sempre classificar valores em um campo de texto em ordem alfabética, mesmo se os caracteres são números. Em outras palavras, os endereços são classificados pelo primeiro dígito, em seguida, o segundo dígito e assim por diante, em vez de pelos 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 do computador

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 dos endereços que comece com 2 e assim por diante. A tabela a seguir mostra os endereços em correto ordem crescente.

ID do computador

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 tornar mais fácil de compreender as etapas envolvidas na classificação esses endereços, você dividir os endereços IP em quatro partes numérico. Os endereços devem ser classificados pela primeira parte, em seguida, para cada valor na primeira parte, depois pela segunda parte e assim por diante. A tabela mostra cada parte de uma coluna diferente e, porque as colunas armazenar valores numéricos simples, é 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

A classificação de quatro partes separadamente é o truque atrás de endereços IP de classificação. No procedimento a seguir, você criar uma consulta que, além de campo de endereço IP, inclui quatro colunas calculadas, onde cada coluna armazena uma parte dos valores de endereço. A primeira coluna calculada conterá a primeira parte numérica do endereço, o segundo calculado coluna conterá parte segundo 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 por quatro colunas calculadas.

Criar a consulta

Você irá criar uma consulta seleção denominada EndereçosIP classificada que exibe os registros em ordem crescente de endereços IP. Suponha que o banco de dados atual tem uma tabela chamada MachineDetails que inclui um campo de texto chamado endereço IP.

  1. Clique em criar > Design da consulta. Observação: se você estiver usando o Access 2007, 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 clique em Adicionar. Feche a caixa de diálogo.

  3. Arraste os campos ID do computador e o endereço IP à grade de design da consulta.

  4. Agora você está pronto para adicionar 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 que precede o primeiro período (.) 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 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 da 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 que estão localizados entre os períodos de primeiro e segundo 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 da 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 que estão localizados entre os períodos de segundo e terceiro no campo endereço IP.

    Novamente, examine a expressão. Porque 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 souber quanto tempo as partes primeira e segunda), você usar a função InStr para encontrar as posições dos períodos. Você, em seguida, use a função Mid para extrair os caracteres que siga o segundo período, mas precedem o terceiro 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.

  8. Adicione a coluna para a parte do endereço de quarto e último. Na coluna à direita da 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 após o último período.

    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 de classificação de todas as quatro colunas calculadas como crescente.

    Importante    A linha de classificação da coluna endereço IP deve ser deixada em branco.

    Se você deseja classificar por outros valores de campo, além de endereços, colocar os campos para a 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 a folha de dados exibir para ver o resultado das expressões em colunas calculadas. A tabela a seguir mostra as colunas que você verá no modo folha de dados.

    ID do computador

    Endereço IP

    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. Alterne para modo de exibição de Design e desmarque a caixa de seleção na linha Mostrar de todas as quatro colunas calculadas. Isso impede que as colunas calculadas sejam exibidos no modo folha de dados.

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

  13. Alternar para modo de folha de dados para ver os registros em ordem classificada. Você verá os registros corretamente classificados em ordem crescente dos endereços IP.

Usos mais para 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 faz a máscara de entrada? Quando você iniciar a digitação no campo endereço, a máscara de entrada impede que você inserir caracteres diferente de números e espaços entre os três períodos. Se uma parte numérica é um número de dois dígitos, deixe o terceiro dígito em branco ou digite um espaço em vez disso. Observe que esta máscara de entrada não avisar o usuário se ele ignora digitando uma ou mais partes do endereço ou espaços somente de tipos em vez de um valor numérico. Por exemplo, "345.. 3. "será aceito como um endereço válido.

O que faz o formato de exibição? Quando você termina de digitar e deixe o campo, o formato de exibição remove os espaços no endereço e exibe apenas os números e os períodos. Portanto, se você digitou "354.35.2.12", o endereço é exibido como "354.35.2.12". Observe que, se você clicar dentro o endereço, ou pressione F2 (para entrar no modo de edição) quando o endereço for selecionado, os espaços serão exibidos novamente.

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

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

Se você precisa criar um formulário ou relatório no qual os registros são classificados por endereços IP, base 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

Expanda suas habilidades no Office
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.

×