Ordenar direcciones IP

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

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

En este artículo

Introducción

Crear la consulta

Más usos para direcciones IP ordenadas

Introducción

Si trabaja con direcciones IP, probablemente ya sabe que no es tan sencillo como trabajar con texto o números. Esto es porque la dirección IP es en realidad 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 aplicar un criterio de ordenación.

Id. Equipo

Empleado

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


Es un desafío ordenar direcciones IP en Access porque Access no proporciona unos tipos de datos especiales para almacenar direcciones IP. Aunque una dirección IP sólo es una colección de números, no puede almacenar unas direcciones IP en un campo numérico. Esto es porque un campo numérico admite sólo un único separador de decimales (.) 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 puede utilizar los botones Ordenar integrados en Access para ordenar las direcciones en una forma coherente. Los botones Ordenar siempre ordenan los valores de un campo de texto en orden alfabético, aunque los caracteres sean 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 forman la dirección. En la tabla siguiente se muestran las direcciones de la tabla anterior ordenadas alfabéticamente en el campo Dirección IP.

Id. Equipo

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.

Id. Equipo

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, se dividen las direcciones IP en cuatro partes numéricas. Las direcciones deben ordenarse por la primera parte, luego por el valor de la primera parte, después por la segunda parte, y así sucesivamente. En la tabla siguiente se muestra cada parte en una columna diferente y, dado que las columnas almacenan valores numéricos, es posible ordenarlas de izquierda a derecha en orden ascendente.

ParteI

ParteII

ParteIII

ParteIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23


La ordenación de las cuatro partes por separado es el secreto que subyace en la ordenación de las direcciones IP. En el procedimiento siguiente, crea una consulta que, además del campo de la dirección IP, incluye cuatro columnas calculadas, y cada una de ellas almacena una parte de los valores de la dirección. La primera columna calculada almacenará la primera parte numérica de la dirección, la segunda columna calculada almacenará 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.

Volver al principio

Crear la consulta

Creará una consulta de selección denominada Direcciones IP Ordenadas que muestre los registros en orden ascendente de direcciones IP. Suponga que la base de datos actual tiene una tabla denominada Detalles Equipo que incluye un campo de texto denominado Dirección IP.

  1. En la ficha Crear, en el grupo Otros, haga clic en Diseño de la consulta.

  2. En el cuadro de diálogo Mostrar tabla, en la ficha Tablas, haga clic en Detalles Equipo y, a continuación, haga clic en Agregar. Cierre el cuadro de diálogo.

  3. Arrastre los campos Id. Equipo y Dirección IP a la cuadrícula de diseño de consultas.

  4. Ya está preparado para agregar las columnas calculadas. En la primera columna en blanco de la derecha, escriba la expresión ParteI: Val(Left([Dirección IP],(InStr(1,[Dirección IP],".")-1))) en la fila Campo. La expresión devuelve los caracteres anteriores al primer punto (.) del campo Dirección IP.

    Ahora, revise la expresión. Como no sabe cuántos dígitos forman la primera parte de la dirección, utilice la función EnCad para localizar la posición del primer período. Resta 1 (para excluir el punto) devuelve el número de dígitos de la primera parte. A continuación, usar este número con la función Left para extraer esos caracteres, empezando desde el carácter más a la izquierda, en el campo dirección IP. Por último, llame a la la función Val para convertir los caracteres que devuelve 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. Se recomienda realizar esta operación después de cada paso intermedio.

  6. Agregue la columna para la segunda parte de la dirección. En la columna situada a la derecha de ParteI, escriba ParteII: Val(Mid([Dirección IP],InStr(1,[Dirección IP],".")+1,InStr(InStr(1,[Dirección IP],".")+1,[Dirección IP],".")-InStr(1,[Dirección IP],".")-1)) en la fila Campo. La expresión devuelve los caracteres situados entre el primer y el segundo punto del campo Dirección IP.

    De nuevo, revise la expresión. Como no sabe cuántos dígitos forman la segunda parte de la dirección ni exactamente dónde comienza la segunda parte (porque desconoce la longitud de la primera parte), utilice la función InStr para encontrar la posición de los períodos. Después de usar el función Mid para extraer los caracteres que le siguen del primer punto pero antes del segundo punto. Finalmente, llame a la función Val para convertir los caracteres que devuelve 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 ParteII, escriba ParteIII: Val(Mid([Dirección IP],InStr(InStr(1,[Dirección IP],".")+1,[Dirección IP],".")+1,InStr(InStr(InStr(1,[Dirección IP],".")+1,[Dirección IP],".")+1,[Dirección IP],".")-InStr(InStr(1,[Dirección IP],".")+1,[Dirección IP],".")-1)) en la fila Campo. La expresión devuelve los caracteres situados entre el segundo y el tercer punto del campo Dirección IP.

    De nuevo revise la expresión. Como no sabe cuántos dígitos forman la tercera parte de la dirección ni exactamente dónde comienza la tercera parte (porque desconoce la longitud de la primera y la segunda parte), utilice la función InStr para encontrar la posición de los puntos. A continuación utilice la función Mid para extraer los caracteres que van después del segundo punto pero antes del tercero. Finalmente, llame a la función Val para convertir los caracteres que devuelve 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 última parte de la dirección. En la columna de la derecha de ParteIII, escriba ParteIV: Val(Right([Dirección IP],Len([Dirección IP])-InStr(InStr(InStr(1,[Dirección IP],".")+1,[Dirección IP],".")+1,[Dirección IP],"."))) en la fila Campo. La expresión devuelve los caracteres que van después del último punto.

    De nuevo, revise la expresión. Es la clave encontrar la ubicación del tercer punto y, a continuación, extraer todos los caracteres que le siguen. Porque no sabe dónde está exactamente el tercer punto, llame a la función InStr tres veces para encontrar la posición del tercer punto. Después de usar el función Len para calcular el número de dígitos de la cuarta parte. El número de dígitos devueltos se utiliza con la función DER para extraer esos caracteres de la parte derecha del campo dirección IP. Finalmente, llame a la función Val para convertir los caracteres que devuelve 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.

    Importante    La fila Ordenar de la columna Dirección IP debe quedar 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 orden entre las columnas calculadas.

  10. El paso siguiente es ocultar las cuatro columnas calculadas en la hora de datos. Pero antes hacerlo, cambie a la vista Hoja de datos para ver el resultado de las expresiones en las columnas calculadas. En la tabla siguiente se muestran las columnas que podrá ver en la vista Hoja de datos.

Id. Equipo

Dirección IP

ParteI

ParteII

ParteIII

ParteIV

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. Cambie de nuevo a la vista Diseño y desactive la casilla de verificación en la fila Mostrar de las cuatro columnas calculadas. Esto impide que las columnas calculadas se muestren en la vista Hoja de datos.

  2. Opcionalmente, especifique criterios para excluir registros de la consulta.

  3. Cambie a la vista Hoja de datos para ver los registros en orden. Verá los registros de las direcciones IP correctamente ordenados en orden ascendente.

Volver al principio

Más usos para direcciones IP ordenadas

Validar las direcciones IP durante la entrada de datos

Si desea validar las direcciones sin escribir código, puede hacerlo de forma limitada estableciendo la propiedad máscara de entrada del campo #. ###. ###. ###; 0; " " y la propiedad formato del campo de dirección IP a & & & & & & & & & & & &.

¿Qué hace la máscara de entrada? Cuando comienza a escribir en el campo de dirección, la máscara de entrada impide que introduzca otros caracteres que no sean números o 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 en su lugar un espacio. Observe que esta máscara de entrada no advierte al usuario si omite escribir una o más partes de la dirección, o escribe sólo espacios en lugar de un valor numérico. Por ejemplo, "345. .3. " podría aceptarse como una dirección válida.

¿Qué hace el formato de presentación? Cuando ha terminado de escribir y sale del campo, el formato de presentación quita los espacios de la dirección y muestra sólo los números y los puntos. Por tanto, si ha escrito "354.35 .2 .12 ", la dirección se muestra como "354.35.2.12". Observe que si hace clic dentro de la dirección o presiona F2 (para entrar en modo de edición) cuando está seleccionada la dirección, volverán a aparecer los espacios.

Sugerencia: Si desea copiar una dirección, desplácese a la columna o control anterior, presione TAB para seleccionar la dirección con formato y, a continuación, haga clic en Copiar. De esta forma, no copiará la cadena de dirección que contiene espacios.

Ordenar registros en un formulario o informe mediante direcciones IP

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

Volver al principio

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Ampliar sus conocimientos
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.

×