Trier des adresses IP

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Cette rubrique explique comment trier les adresses IP (Internet Protocol) stockées dans une base de données Microsoft Office Access 2007.

Contenu de cet article

Introduction

Créer la requête

Autres utilisations des adresses IP triées

Présentation

Si vous êtes familiarisé avec les adresses IP, vous savez que leur manipulation n'est pas aussi simple que celle du texte ou de nombres. En effet, les adresses IP regroupent quatre valeurs numériques séparées par un point (.) et chacune de ces valeurs correspond à un nombre entre 0 et 255. Le tableau suivant présente les données non triées.

ID machine

Employé

Emplacement

Adresse 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


Le tri des adresses IP dans Access constitue un véritable défi, car ce programme ne fournit pas de type de données spécifique pour stocker les adresses IP. Bien que les adresses IP sont un simple regroupement de nombres, vous ne pouvez pas les stocker dans un champ numérique, car ce type de champ n'accepte qu'un seul point décimal (.) et les adresses IP en contiennent trois. C'est pourquoi vous devez stocker les adresses dans un champ de texte.

Comme vous devez stocker les adresses IP dans un champ de texte, vous ne pouvez pas faire appel aux boutons de tri intégrés à Access pour les trier de manière significative. En effet, les boutons de tri trient les valeurs d'un champ de texte dans l'ordre alphabétique même si ce champ contient des nombres. En d'autres termes, les adresses sont triées d'après leur premier chiffre, puis d'après le deuxième, et ainsi de suite, et non d'après les valeurs numériques qui composent l'adresse. Le tableau suivant montre les adresses contenues dans le tableau ci-dessus triées dans l'ordre alphabétique dans le champ Adresse IP.

ID machine

Adresse 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


Les adresses commençant par le chiffre 1 apparaissent avant celles qui commencent par le chiffre 2, et ainsi de suite. Le tableau suivant présente ces adresses triées dans l'ordre croissant approprié.

ID machine

Adresse 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


Pour mieux comprendre la procédure de tri des adresses IP, décomposez celles-ci en quatre sections numériques. Le tri doit s'effectuer sur la première section, puis sur la deuxième, etc. Le tableau suivant affiche chaque section dans une colonne distincte et comme les colonnes contiennent des valeurs numériques simples, il est alors possible de les trier de gauche à droite dans l'ordre croissant comme l'illustre le tableau suivant.

Section I

Section II

Section III

Section 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


La difficulté réside dans le tri des quatre sections individuellement. Dans la procédure suivante, vous allez créer une requête qui, outre le champ de l'adresse IP, contient quatre colonnes calculées pour chaque section de l'adresse IP. La première colonne contient la première section de l'adresse, la deuxième colonne, la deuxième section, et ainsi de suite. Au lieu de trier les enregistrements sur le champ Adresse IP, la requête les trie sur les quatre colonnes calculées.

Haut de la Page

Créer une requête

Vous allez créer une requête de sélection nommée Adresses IP triées qui affiche les enregistrements dans l'ordre croissant des adresses IP. Supposons que la base de données active contienne un tableau appelé Détails machine qui inclut le champ de texte Adresse IP.

  1. Dans l'onglet Créer, cliquez sur Création de requête dans le groupe Autre.

  2. Dans la boîte de dialogue Afficher la table, cliquez sur l'onglet Tables, puis sur Détails machine et enfin sur Ajouter. Fermez la boîte de dialogue.

  3. Déposez les champs ID machine et Adresse IP dans la grille de création de la requête.

  4. À présent, vous pouvez ajouter les colonnes calculées. Dans la première colonne vierge de droite, tapez l'expression Section I: Val(Left([Adresse IP],(InStr(1,[Adresse IP],".")-1))) dans la ligne Champ. Cette expression renvoie les caractères qui précèdent le premier point (.) dans le champ Adresse IP.

    À présent, passez en revue l’expression. Étant donné que vous ne connaissez pas le nombre de chiffres composent la première partie de l’adresse, vous utilisez la InStr, fonction pour déterminer la position de la première période. Soustrayez la valeur 1 (pour exclure la période) renvoie le nombre de chiffres dans la première partie. Vous utilisez alors ce nombre avec la fonction Left pour extraire autant de caractères, en commençant par le caractère à l’extrême gauche, à partir du champ adresse IP. Pour finir, vous appelez le la fonction Val pour convertir les caractères renvoyés par la fonction gauche dans un nombre. Cette dernière étape est nécessaire car le type de données sous-jacente correspond à texte.

  5. Enregistrez la requête en cliquant sur Enregistrer dans la Barre d'outils Accès rapide. Il est conseillé de procéder ainsi après chaque étape intermédiaire.

  6. Ajoutez la colonne de la deuxième section de l'adresse. Dans la colonne à droite de Section I, tapez Section II: Val(Mid([Adresse IP],InStr(1,[Adresse IP],".")+1,InStr(InStr(1,[Adresse IP],".")+1,[Adresse IP],".")-InStr(1,[Adresse IP],".")-1)) dans la ligne Champ. Cette expression renvoie les caractères qui se trouvent entre le premier et le deuxième point du champ Adresse IP.

    Là encore, passez en revue l’expression. Étant donné que vous ne connaissez pas le nombre de chiffres composent la deuxième partie de l’adresse ou exactement où la seconde partie débute (parce que vous n’avez pas la première partie de l’intervalle de temps est), vous utilisez la fonction InStr pour trouver les positions des périodes. Vous utilisez ensuite la fonction Mid pour extraire les caractères qui suivent le premier point et précèdent le deuxième. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction Mid en un nombre. Cette dernière étape est nécessaire car le type de données sous-jacente correspond à texte.

  7. Ajoutez la colonne de la troisième section de l'adresse. Dans la colonne à droite de Section II, tapez Section III: Val(Mid([Adresse IP],InStr(InStr(1,[Adresse IP],".")+1,[Adresse IP],".")+1,InStr(InStr(InStr(1,[Adresse IP],".")+1,[Adresse IP],".")+1,[Adresse IP],".")-InStr(InStr(1,[Adresse IP],".")+1,[Adresse IP],".")-1)) dans la ligne Champ. Cette expression renvoie les caractères qui se trouvent entre le deuxième et le troisième point du champ Adresse IP.

    Analysez de nouveau l'expression. Comme vous ne savez pas de combien de chiffres la troisième section de l'adresse est constituée ni exactement à quel endroit la troisième section débute (parce que vous ne connaissez pas la longueur de la première et de la deuxième sections), faites appel à la fonction InStr pour trouver les positions des points. Utilisez ensuite la fonction Mid pour extraire les caractères qui suivent le deuxième point et qui précèdent le troisième. Enfin, appelez la fonction Val pour convertir en nombres les caractères renvoyés par la fonction Mid. Cette dernière étape est importante, car le type de données sous-jacent est Texte.

  8. Ajoutez la colonne de la quatrième section de l'adresse. Dans la conne à droite de Section III, tapez Section IV: Val(Right([Adresse IP],Len([Adresse IP])-InStr(InStr(InStr(1,[Adresse IP],".")+1,[Adresse IP],".")+1,[Adresse IP],"."))) dans la ligne Champ. Cette expression renvoie les caractères qui suivent le dernier point.

    Là encore, passez en revue l’expression. La clé consiste à trouver l’emplacement du troisième point puis extraire tous les caractères qui suivent. Comme vous ne savez pas exactement où la troisième période se trouve, vous appelez la fonction InStr trois fois pour trouver la position du troisième point. Vous utilisez ensuite la fonction Len pour calculer le nombre de chiffres dans la quatrième partie. Le nombre de chiffres renvoyés est ensuite utilisé avec la la fonction droite pour extraire autant de caractères à partir de la partie droite du champ adresse IP. Enfin, vous appelez la fonction Val pour convertir les caractères renvoyés par la fonction Mid en un nombre. Cette dernière étape est nécessaire car le type de données sous-jacente correspond à texte.

  9. Définissez la ligne Trier des quatre colonnes calculées à Croissant.

    Important    La ligne Trier de la colonne Adresse IP doit rester vierge.

    Si vous voulez trier les adresses sur une autre valeur de champ, outre les adresses, 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 de la feuille de données. Mais avant d'exécuter cette opération, passez en mode Feuille de données pour afficher le résultat des expressions dans les colonnes calculées. Le tableau suivant présente les colonnes qui vont s'afficher en mode Feuille de données.

ID machine

Adresse IP

Section I

Section II

Section III

Section IV

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. Repassez en mode Création et désactivez la case à cocher affichée dans la ligne Afficher des quatre colonnes calculées pour ne pas afficher les colonnes calculées dans la vue Feuille de données.

  2. Si vous le voulez, vous pouvez spécifier des critères d'exclusion des enregistrements de la requête.

  3. Passez en mode Feuille de données pour afficher les enregistrements triés ; ils apparaissent correctement triés dans l'ordre croissant des adresses IP.

Haut de la Page

Autres utilisations des adresses IP triées

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

Si vous souhaitez valider des adresses sans écrire du code, vous pouvez le faire dans une certaine mesure en attribuant la valeur du champ auquel #. ###. ###. ### ; 0 ; » « et la propriété Format du champ adresse IP à & & & & & & & & & & & &.

Quel est le rôle du masque de saisie ? Lorsque vous commencez à taper des données dans le champ d'adresse, le masque de saisie vous empêche de saisir des caractères autres que des nombres et des espaces entre les trois points. Si une section numérique contient un nombre à deux chiffres, laissez l'espace du troisième chiffre vierge ou tapez un espace. Notez que le masque de saisie n'indique pas à l'utilisateur qu'il a omis de taper une ou plusieurs parties de l'adresse ou qu'il a saisi uniquement des espaces au lieu d'une valeur numérique. Par exemple, « 345. .3. » est accepté comme adresse valide.

Rôle du format d'affichage ? Lorsque vous avez fini de taper des données et que vous quittez le champ, le format d'affichage supprime les espaces de l'adresse et n'affiche que les nombres et les points. Ainsi, si vous avez tapé « 354.35 .2 .12 », l'adresse 354.35.2.12 est affichée. Notez que si vous cliquez dans l'adresse ou si vous appuyez sur la touche F2 (pour passer en mode Édition) lorsque l'adresse est sélectionnée, les espaces réapparaissent.

Conseil : Si vous voulez copier une adresse, placez le curseur dans la colonne ou le contrôle précédent, appuyez sur la touche TAB pour sélectionner l'adresse mise en forme et cliquez sur Copier. Ainsi, vous ne copiez pas l'adresse avec des espaces.

Trier les enregistrements par adresses IP dans un formulaire ou un état

Si vous avez besoin d'un formulaire ou d'un état dans lesquels les adresses IP sont triées, créez l'objet en question à partir d'une requête qui trie les adresses comme indiqué précédemment et non à partir d'un tableau de stockage des adresses.

Haut de la Page

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
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.

×