Trier des adresses IP dans Access

Remarque : Nous faisons de notre mieux pour vous fournir le contenu d’aide le plus récent aussi rapidement que possible dans votre langue. Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez-vous nous indiquer en bas de page si ces informations vous ont aidé ? Voici l’article en anglais à des fins de référence aisée.

Cette rubrique décrit la procédure de tri des adresses IP stockées dans une base de données Access.

Introduction

Si vous utilisez des adresses IP, vous savez probablement déjà qu'il n'est pas aussi simple que d'utiliser du texte ou des nombres. Cela est dû au fait qu'une adresse IP est réellement une collection de quatre valeurs numériques séparées par un point (.), où chaque valeur est un nombre compris entre 0 et 255. Le tableau suivant présente les données avant l'application de l'ordre de tri.

MachineID

Personnel

Emplacement

Grat

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

Le fait de trier des adresses IP dans Access est un défi, car Access ne fournit pas de type de données spécial pour le stockage des adresses IP. Bien qu'une adresse IP ne soit qu'une collection de nombres, vous ne pouvez pas stocker d'adresses IP dans un champ numérique. Cela est dû au fait qu'un champ numérique ne prend en charge qu'un seul point décimal (.), alors qu'une adresse IP comporte 3 points (.). Cela signifie que vous devez stocker les adresses dans un champ de texte.

Dans la mesure où les adresses IP sont stockées dans un champ de texte, vous ne pouvez pas utiliser les boutons de tri intégrés d'Access pour trier les adresses d'une manière significative. Les boutons de tri trient toujours les valeurs dans un champ de texte par ordre alphabétique, même si les caractères sont des nombres. En d'autres termes, les adresses sont triées par le premier chiffre, puis par le deuxième chiffre, et ainsi de suite, au lieu des valeurs numériques qui constituent l'adresse. Le tableau suivant répertorie les adresses du tableau précédent triées par ordre alphabétique sur le champ IPAddress.

MachineID

Grat

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

Les adresses commençant par 1 sont affichées avant les adresses commençant par 2, et ainsi de suite. Le tableau suivant répertorie les adresses dans l'ordre croissant approprié .

MachineID

Grat

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

Pour mieux comprendre les étapes associées au tri de ces adresses, vous devez scinder les adresses IP en quatre parties numériques. Les adresses doivent être triées en fonction de la première partie, puis de chaque valeur de la première partie, et ainsi de suite. Le tableau montre chaque partie d'une autre colonne et, dans la mesure où les colonnes contiennent de simples valeurs numériques, il est possible de trier les colonnes de gauche à droite dans l'ordre croissant, comme indiqué dans le tableau suivant.

I

PartIi

PartIII

PartIV

1

198

3

93

32

183

93

40

104

trente

244

2

104

244

4

1

104

244

253

mai

123

4

245

23

Le fait de trier les quatre parties séparément est l'astuce derrière le tri des adresses IP. Dans le cadre de la procédure ci-dessous, vous créez une requête qui, en plus du champ IP Address (adresse IP), inclut quatre colonnes calculées dans lesquelles chaque colonne stocke une partie des valeurs d'adresse. La première colonne calculée conserve la première partie numérique de l'adresse, la deuxième colonne calculée conserve la deuxième partie numérique de l'adresse, et ainsi de suite. Au lieu de trier les enregistrements par le champ IPAddress, la requête triera les enregistrements par quatre colonnes calculées.

Créer la requête

Vous allez créer une requête sélection nommée adressesIP triées qui affiche les enregistrements dans l'ordre croissant des adresses IP. Supposez que la base de données active comporte une table nommée MachineDetails incluant un champ de texte nommé IPAddress.

  1. Cliquez sur créer une requête>. 

  2. Dans la boîte de dialogue afficher la table , sous l'onglet tables , cliquez sur MachineDetails , puis cliquez sur Ajouter. Fermez la boîte de dialogue.

  3. Faites glisser les champs MachineID et IPAddress vers la grille de création de requête.

  4. Vous êtes maintenant prêt à ajouter les colonnes calculées. Dans la première colonne vide située à droite, tapez l'expression type . valeur (gauche ([IPAddress], (InStr (1, [IPAddress], ".") -1) ) sur la ligne champ . L'expression renvoie les caractères précédant la première période (.) dans le champ IPAddress.

    À présent, passez en revue l'expression. Étant donné que vous ne connaissez pas le nombre de chiffres constituant la première partie de l'adresse, vous utilisez la fonction InStr pour trouver la position de la première période. Le fait de soustraire 1 (pour exclure la période) renvoie le nombre de chiffres dans la première partie. Vous utilisez ensuite ce numéro avec la fonction gauche pour extraire ce nombre de caractères, en partant du caractère le plus à gauche du champ IPAddress. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction gauche en un nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est texte.

  5. Enregistrez la requête en cliquant sur Enregistrer sur la barre d'outils accès rapide. C'est une bonne idée de procéder après chaque étape intermédiaire.

  6. Ajoutez la colonne pour la deuxième partie adresse. Dans la colonne à droite de la fonction type . type. Val (STXT ([IPAddress], InStr (1, [IPAddress], ".") + 1, InStr (InStr (1, [IPAddress], ".") + 1, [IPAddress], ".") -InStr (1, [IPAddress], ".") -1)) sur la ligne champ . L'expression renvoie les caractères situés entre la première et la deuxième période du champ IPAddress.

    Là encore, révisez l'expression. Étant donné que vous ne savez pas combien de chiffres constitue la deuxième partie de l'adresse ou du moment où la deuxième partie commence (car vous n'avez pas la longueur de la première partie ), vous utilisez la fonction InStr pour trouver les positions des points. Vous pouvez ensuite utiliser la fonction STXT pour extraire les caractères qui suivent la première période tout en préservant la seconde période. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction STXT en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est texte.

  7. Ajoutez la colonne pour la troisième partie adresse. Dans la colonne à droite de la section PartIi, tapez partIII: Val (STXT ([IPAddress], InStr (InStr (1, [IPAddress], ".") + 1, [IPAddress], ".") + 1, InStr (InStr (InStr (1, [Adresse_ip], ".") + 1, [IPAddress], ".") + 1, [IPAddress], ".") -InStr (InStr (1, [IPAddress], ".") + 1, [IPAddress], ".") -1)) sur la ligne champ . L'expression renvoie les caractères situés entre les deuxième et troisième points du champ IPAddress.

    Là encore, révisez l'expression. Étant donné que vous ne connaissez pas le nombre de chiffres constituant la troisième partie de l'adresse ou exactement l'endroit où se trouve la troisième partie (car vous ne connaissez pas la durée des premières et secondes ), vous devez utiliser la fonction InStr pour trouver les positions des périodes. Vous pouvez ensuite utiliser la fonction STXT pour extraire les caractères qui suivent la deuxième période tout en préservant la troisième période. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction STXT en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est texte.

  8. Ajoutez la colonne pour la partie de la quatrième et de la dernière adresse. Dans la colonne à droite de PartIII, tapez PartIV: Val (droite ([IPAddress], NBCAR ([IPAddress])-InStr (InStr (InStr (1, [Adresse_IP], ".") + 1, [IPAddress], ".") + 1, [IPAddress], ".") ) dans la ligne champ . L'expression renvoie les caractères qui suivent la dernière période.

    Là encore, révisez l'expression. La clé consiste à trouver l'emplacement du troisième point, puis à extraire tous les caractères qui le suivent. Étant donné que vous ne savez pas exactement où se trouve le troisième point, vous devez appeler la fonction InStr trois fois pour déterminer la position de la troisième période. Vous pouvez ensuite utiliser la fonction NBCAR pour calculer le nombre de chiffres dans la quatrième partie. Le nombre de chiffres retourné est alors utilisé avec la fonction Right pour extraire autant de caractères de la partie droite du champ IPAddress. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction STXT en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est texte.

  9. Définissez la ligne Tri des quatre colonnes calculées sur croissant.

    Essentielles    La ligne Trier de la colonne IPAddress doit rester vide.

    Si vous voulez effectuer un tri selon d'autres valeurs de champ, en plus de celles-ci, placez les champs à gauche ou à droite des quatre colonnes calculées. Ne placez pas les autres champs de tri entre les colonnes calculées.

  10. L'étape suivante consiste à masquer les quatre colonnes calculées dans la feuille de données. Mais avant cela, basculez en mode feuille de données pour afficher le résultat des expressions dans les colonnes calculées. Le tableau suivant montre les colonnes qui s'affichent en mode feuille de données.

    MachineID

    Grat

    I

    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

    trente

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    mai

    1

    123.4.245.23

    123

    4

    245

    23

  11. ReVenez en mode création et désactivez la case à cocher dans la ligne Afficher des quatre colonnes calculées. Cela empêche l'affichage des colonnes calculées en mode feuille de données.

  12. Vous pouvez également spécifier des critères pour exclure les enregistrements de la requête.

  13. Basculez en mode feuille de données pour afficher les enregistrements dans un ordre trié. Vous verrez les enregistrements correctement triés dans l'ordre croissant des adresses IP.

Autres utilisations pour les adresses IP triées

Valider les adresses IP lors de la saisie de données

Si vous souhaitez valider des adresses sans écrire de code, vous pouvez le faire dans une certaine mesure en définissant la propriété MasqueSaisie du champ sur # # # ## # # # # # # ## #; 0;» " et la propriété format du champ IP address sur &&&&&&&&&&&&.

Quel est le rôle du masque de saisie? Lorsque vous commencez à taper dans le champ adresse, le masque de saisie vous empêche d'entrer des caractères autres que des chiffres et des espaces entre les trois points. Si une partie numérique est un nombre à deux chiffres, laissez le troisième chiffre vide ou tapez un espace à la place. Notez que ce masque de saisie ne permet pas d'avertir l'utilisateur s'il ignore la saisie d'une ou plusieurs parties de l'adresse ou ne tape que des espaces au lieu d'une valeur numérique. Par exemple, «345. 3D. "est accepté en tant qu'adresse valide.

À quoi sert le format d'affichage? Lorsque vous avez fini de taper et de quitter le champ, le format d'affichage supprime les espaces dans l'adresse et affiche uniquement les nombres et les points. Par conséquent, si vous avez tapé «354,35: .12», l'adresse est «354.35.2.12». Notez que si vous cliquez à l'intérieur de l'adresse ou que vous appuyez sur F2 (pour passer en mode d'édition) lorsque l'adresse est sélectionnée, les espaces réapparaissent.

Conseil : Si vous voulez copier une adresse, accédez à la colonne ou au contrôle précédent, appuyez sur TAB pour sélectionner l'adresse mise en forme, puis cliquez sur copier. En procédant ainsi, vous ne copiez pas la chaîne d'adresses qui contient des espaces.

Trier les enregistrements d'un formulaire ou d'un État par adresse IP

Si vous avez besoin de créer un formulaire ou un État dans lequel les enregistrements sont triés par adresse IP, basez le nouvel objet sur une requête qui trie les adresses comme décrit précédemment, au lieu de la table qui contient les adresses.

Haut de la page

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×