Ordenar direcciones IP en Access

Nota: Nos gustaría proporcionarle el contenido de ayuda actual lo más rápido posible en su idioma. Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido sea útil para usted. ¿Puede informarnos sobre si la información le ha sido útil al final de la página? Aquí tiene el artículo en inglés para que pueda consultarlo fácilmente.

En este tema se describe el procedimiento para ordenar las direcciones de protocolo de Internet (IP) almacenadas en una base de datos Access.

Introducción

Si trabaja con direcciones IP, probablemente ya sepa que no es tan sencillo como trabajar con texto o números. Esto se debe a que una dirección IP es realmente una colección de cuatro valores numéricos separados por un punto (.), donde cada valor es un número entre 0 y 255. En la tabla siguiente se muestran los datos antes de que se aplique ningún criterio de ordenación.

MachineID

Trabajador

Ubicación

Dirección 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

Ordenar las direcciones IP en Access es un reto porque Access no proporciona un tipo de datos Especial para almacenar direcciones IP. Aunque una dirección IP solo es una colección de números, no puede almacenar las direcciones IP en un campo numérico. Esto se debe a que un campo numérico admite un único separador decimal (.), mientras que una dirección IP contiene tres puntos (.). Esto significa que debe almacenar las direcciones en un campo de texto.

Como las direcciones IP se almacenan en un campo de texto, no se pueden usar los botones de ordenación integrados en Access para ordenar las direcciones de forma significativa. Los botones ordenar siempre ordenan los valores de un campo de texto en orden alfabético, incluso si los caracteres son números. En otras palabras, las direcciones se ordenan por el primer dígito, después por el segundo dígito, y así sucesivamente, en lugar de por los valores numéricos que componen la dirección. En la tabla siguiente se muestran las direcciones de la tabla anterior ordenadas por orden alfabético en el campo dirección IP.

MachineID

Dirección 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

Las direcciones que comienzan con 1 se muestran antes de las direcciones que comienzan con 2, y así sucesivamente. En la tabla siguiente se muestran las direcciones en el orden ascendente correcto .

MachineID

Dirección 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 la comprensión de los pasos implicados en la ordenación de estas direcciones, las direcciones IP se dividen en cuatro partes numéricas. Las direcciones deben ordenarse por la primera parte, luego por cada valor de la primera parte, luego por la segunda y así sucesivamente. La tabla muestra cada parte en una columna diferente y, dado que las columnas contienen valores numéricos simples, es posible ordenar las columnas de izquierda a derecha en orden ascendente, como se muestra en la tabla siguiente.

Partei

PartII

PartIII

PartIV

1

198

3

93

32

183

93

40

104

0,30

244

2

104

244

4

1

104

244

253

32

123

4

245

,23

Ordenar las cuatro partes por separado es el truco que subyace en la ordenación de las direcciones IP. En el siguiente procedimiento, creará una consulta que, además del campo dirección IP, incluye cuatro columnas calculadas donde cada columna almacena una parte de los valores de la dirección. La primera columna calculada contendrá la primera parte numérica de la dirección, la segunda columna calculada contendrá la segunda parte numérica de la dirección, y así sucesivamente. En lugar de ordenar los registros por el campo dirección IP, la consulta ordenará los registros por las cuatro columnas calculadas.

Crear la consulta

Creará una consulta de selección denominada IPAddresses ordenada que muestra los registros en orden ascendente de direcciones IP. SuPongamos que la base de datos actual tiene una tabla denominada MachineDetails que incluye un campo de texto denominado dirección IP.

  1. Haga clic en Crear > Diseño de consulta

  2. En el cuadro de diálogo Mostrar tabla , en la pestaña tablas , haga clic en MachineDetails y, a continuación, haga clic en Agregar. Cierre el cuadro de diálogo.

  3. Arrastre los campos MachineID y dirección IP a la cuadrícula de diseño de la consulta.

  4. Ya está listo para agregar las columnas calculadas. En la primera columna en blanco de la derecha, escriba la expresión Part: Val (Left ([direcciónIP], (instr (1, [IPaddress], ".") -1) )) en la fila campo . La expresión devuelve los caracteres anteriores al primer punto (.) en el campo dirección IP.

    Ahora, revise la expresión. Como no sabe cuántos dígitos forman la primera parte de la dirección, use la función ENCAD para buscar la posición del primer punto. Al restar 1 (para excluir el punto), se devuelve el número de dígitos de la primera parte. A continuación, usa este número con la función left para extraer ese número de caracteres, empezando desde el carácter de la izquierda, desde el campo dirección IP. Por último, puedes llamar a la función Val para convertir los caracteres devueltos por la función left en un número. Este último paso es necesario porque el tipo de datos subyacente es texto.

  5. Guarde la consulta haciendo clic en Guardar en la barra de herramientas de acceso rápido. Es buena idea hacerlo después de cada paso intermedio.

  6. Agregue la columna de la segunda parte de la dirección. En la columna situada a la derecha de parti, escriba PartII: Val (MID ([direcciónIP], InStr (1, [IPaddress], ".") + 1, ENCAD (InStr (1, [direcciónIP], ".") + 1, [direcciónIP], ".") -InStr (1, [direcciónIP], ".") -1)) en la fila campo . La expresión devuelve los caracteres que se encuentran entre el primer y el segundo punto del campo dirección IP.

    Una vez más, revise la expresión. Como no sabe cuántos dígitos forman la segunda parte de la dirección o exactamente dónde comienza la segunda parte (porque no es la cantidad de tiempo que es la primera), use la función ENCAD para encontrar las posiciones de los puntos. A continuación, use la función Mid para extraer los caracteres que siguen al primer punto, pero antes del segundo punto. Por último, puedes llamar a la función Val para convertir los caracteres devueltos por la función Mid en un número. Este último paso es necesario porque el tipo de datos subyacente es texto.

  7. Agregue la columna para la tercera parte de la dirección. En la columna situada a la derecha de PartII, escriba PartIII: Val (MID ([IPaddress], ENCAD (instr (1, [IPaddress], ".") + 1, [direcciónIP], ".") + 1, ENCAD (InStr (1, [direcciónIP], ".") + 1, [direcciónIP], ".") + 1, [direcciónIP], ".") -ENCAD (InStr (1, [dirección IP], ".") + 1, [direcciónIP], ".") -1)) en la fila campo . La expresión devuelve los caracteres que se encuentran entre el segundo y el tercer punto del campo dirección IP.

    Una vez más, revise la expresión. Como no sabe cuántos dígitos forman la tercera parte de la dirección o exactamente dónde comienza la tercera parte (porque no sabe cuánto tiempo tienen la primera y la segunda partes), use la función ENCAD para encontrar las posiciones de los puntos. A continuación, use la función Mid para extraer los caracteres que siguen al segundo punto, pero antes del tercer punto. Por último, puedes llamar a la función Val para convertir los caracteres devueltos por la función Mid en un número. Este último paso es necesario porque el tipo de datos subyacente es texto.

  8. Agregue la columna para la cuarta y la parte final de la dirección. En la columna situada a la derecha de PartIII, escriba PartIV: Val (Right ([IPaddress], Len ([IPaddress])-ENCAD (ENCAD (instr (1, [IPaddress], ".") + 1, [direcciónIP], ".") + 1, [direcciónIP], "."))) en la fila campo . La expresión devuelve los caracteres que siguen al último punto.

    Una vez más, revise la expresión. La clave es encontrar la ubicación del tercer período y, a continuación, extraer todos los caracteres que le siguen. Como no sabe exactamente dónde se encuentra el tercer punto, llame a la función ENCAD tres veces para buscar la posición del tercer punto. A continuación, use la función largo para calcular el número de dígitos de la cuarta parte. El número de dígitos devueltos se usa con la función derecha para extraer esos caracteres de la parte derecha del campo dirección IP. Por último, puedes llamar a la función Val para convertir los caracteres devueltos por la función Mid en un número. Este último paso es necesario porque el tipo de datos subyacente es texto.

  9. Establezca la fila ordenar de las cuatro columnas calculadas en ascendente.

    Interés    La fila ordenar de la columna dirección IP debe dejarse en blanco.

    Si desea ordenar por otros valores de campo, además de las direcciones, coloque los campos a la izquierda o a la derecha de las cuatro columnas calculadas. No coloque los otros campos de ordenación entre las columnas calculadas.

  10. El siguiente paso consiste en ocultar las cuatro columnas calculadas de la hoja de cálculo. Pero antes de hacerlo, cambie a la vista Hoja de cálculo para ver el resultado de las expresiones en las columnas calculadas. En la tabla siguiente se muestran las columnas que verá en la vista Hoja de información.

    MachineID

    Dirección IP

    Partei

    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

    0,30

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    32

    1

    123.4.245.23

    123

    4

    245

    ,23

  11. Vuelva a la vista Diseño y desactive la casilla de verificación de la fila Mostrar de las cuatro columnas calculadas. Esto evita que las columnas calculadas se muestren en la vista Hoja de cálculo.

  12. Si lo desea, puede especificar criterios para excluir registros de la consulta.

  13. Cambie a la vista Hoja de información para ver los registros ordenados. Verá los registros correctamente ordenados en orden ascendente de direcciones IP.

Más usos de las direcciones IP ordenadas

Validar direcciones IP durante la entrada de datos

Si desea validar las direcciones sin escribir código, puede hacerlo en una medida limitada al establecer la propiedad MáscaraDeEntrada del campo en # ##. ## #. # # #. # # #; 0; " " y la propiedad Format del campo dirección IP en &&&&&&&&&&&&.

¿Qué hace la máscara de entrada? Al empezar a escribir en el campo dirección, la máscara de entrada le impide escribir caracteres que no sean números y espacios entre los tres puntos. Si una parte numérica es un número de dos dígitos, deje el tercer dígito en blanco o escriba un espacio en su lugar. Tenga en cuenta que esta máscara de entrada no advierte al usuario si omite escribir una o más partes de la dirección, o escribe solo espacios en lugar de un valor numérico. Por ejemplo, "345. 2. "se aceptaría como una dirección válida.

¿Qué hace el formato de presentación? Cuando termine de escribir y salir del campo, el formato de presentación quita los espacios de la dirección y muestra solo los números y los puntos. Por lo tanto, si escribe "354,35 .2 .12", la dirección se muestra como "354.35.2.12". Tenga en cuenta que si hace clic dentro de la dirección o presiona F2 (para entrar en modo de edición) cuando la dirección está seleccionada, los espacios volverán a aparecer.

Sugerencia: Si desea copiar una dirección, vaya a la columna o al control anterior, presione la tecla TAB para seleccionar la dirección con formato y, a continuación, haga clic en copiar. Al hacerlo, no copiará la cadena de dirección que contiene espacios.

Ordenar registros en un formulario o informe por direcciones IP

Si necesita crear un formulario o un informe en el que los registros se ordenan por direcciones IP, base el nuevo objeto en una consulta que ordena las direcciones como se ha descrito anteriormente, en lugar de hacerlo en la tabla que almacena las direcciones.

Volver al principio

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×