Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Cette rubrique décrit la procédure de tri des adresses IP (Internet Protocol) 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 chiffres. En effet, une adresse IP est en fait 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 affiche les données avant l’application d’un ordre de tri.

MachineID

Contoso

Lieu

Ipaddress

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 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 soit simplement 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’une seule virgule décimale (.), alors qu’une adresse IP contient trois points (.). Cela signifie que vous devez stocker les adresses dans un champ de texte.

Étant donné que vous stockez des adresses IP dans un champ de texte, vous ne pouvez pas utiliser les boutons de tri intégrés dans Access pour trier les adresses de manière significative. Les boutons de tri trient toujours les valeurs d’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 composent l’adresse. Le tableau suivant présente les adresses de la table précédente triées par ordre alphabétique dans le champ ADRESSE IP.

MachineID

Ipaddress

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 qui commencent par 1 sont affichées avant les adresses qui commencent par 2, et ainsi de suite. Le tableau suivant présente les adresses dans l’ordre croissant correct .

MachineID

Ipaddress

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 faciliter la compréhension des étapes impliquées dans le tri de ces adresses, vous divisez les adresses IP en quatre parties numériques. Les adresses doivent être triées par la première partie, puis pour chaque valeur de la première partie, puis par la deuxième partie, et ainsi de suite. Le tableau affiche chaque partie dans une colonne différente et, comme les colonnes contiennent des valeurs numériques simples, il devient possible de trier les colonnes de gauche à droite dans l’ordre croissant, comme indiqué dans le tableau suivant.

PartI

PartII

PartII

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

Le tri des quatre parties séparément est l’astuce qui sous-tend le tri des adresses IP. Dans la procédure qui suit, vous créez une requête qui, en plus du champ Adresse IP, inclut quatre colonnes calculées où chaque colonne stocke une partie des valeurs d’adresse. La première colonne calculée contiendra la première partie numérique de l’adresse, la deuxième colonne calculée contiendra la deuxième partie numérique de l’adresse, et ainsi de suite. Au lieu de trier les enregistrements en fonction du champ IPAddress, la requête trie les enregistrements selon les quatre colonnes calculées.

Créer la requête

Vous allez créer une requête select 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 possède une table nommée MachineDetails qui inclut un champ de texte nommé IPAddress.

  1. Cliquez sur Créer > conception de requête

  2. Sélectionnez Ajouter des tables (Afficher la table dans Access 2013 ) et faites glisser Détails de l’ordinateur vers la section supérieure du mode Création.

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

  4. Vous êtes maintenant prêt à ajouter les colonnes calculées. Dans la première colonne vide à droite, tapez l’expression PartI : Val(Left([IPAddress],(InStr(1,[IPAddress], ». ») -1))) dans la ligne Champ . L’expression retourne les caractères précédant le premier point (.) dans le champ ADRESSE IP.

    À présent, passez en revue l’expression . Étant donné que vous ne savez pas combien de chiffres composent la première partie de l’adresse, vous utilisez la fonction InStr pour rechercher la position du premier point. La soustraction de 1 (pour exclure le point) retourne le nombre de chiffres dans la première partie. Vous utilisez ensuite ce nombre avec la fonction Left pour extraire ce nombre de caractères, en commençant par le caractère le plus à gauche, du champ IPAddress. Enfin, vous appelez la fonction Val pour convertir les caractères retournés par la fonction Left en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est Text.

  5. Enregistrez la requête en cliquant sur Enregistrer dans la barre d’outils Accès rapide. Il est judicieux de le faire après chaque étape intermédiaire.

  6. Ajoutez la colonne pour la deuxième partie d’adresse. Dans la colonne à droite de PartI, tapez PartII : Val(Mid([IPAddress],InStr(1,[IPAddress], ». ») +1,InStr(InStr(1,[ADRESSE IP], ». ») +1,[ADRESSE IP], ». ») -InStr(1,[ADRESSE IP], ». ») -1)) dans la ligne Champ . L’expression retourne les caractères situés entre la première et la deuxième période dans le champ IPAddress.

    Là encore, passez en revue l’expression . Étant donné que vous ne savez pas combien de chiffres composent la deuxième partie de l’adresse ou exactement où commence la deuxième partie (car vous ne connaissez pas la durée de la première partie), vous utilisez la fonction InStr pour rechercher les positions des points. Vous utilisez ensuite la fonction Mid pour extraire les caractères qui suivent la première période, mais qui précèdent la deuxième période. Enfin, vous appelez la fonction Val pour convertir les caractères retournés par la fonction Mid en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est Text.

  7. Ajoutez la colonne pour la troisième partie d’adresse. Dans la colonne à droite de PartII, tapez PartII : Val(Mid([IPAddress],InStr(InStr(1,[IPAddress], ». ») +1,[ADRESSE IP], ». ») +1,InStr(InStr(InStr(1,[IPAddress], ». ») +1,[ADRESSE IP], ». ») +1,[ADRESSE IP], ». ») -InStr(InStr(1,[ADRESSE IP], ». ») +1,[ADRESSE IP], ». ») -1)) dans la ligne Champ . L’expression retourne les caractères situés entre les deuxième et troisième points dans le champ IPAddress.

    Là encore, passez en revue l’expression . Étant donné que vous ne savez pas combien de chiffres composent la troisième partie de l’adresse ou exactement où commence la troisième partie (parce que vous ne savez pas combien de temps sont les première et deuxième parties), vous utilisez la fonction InStr pour rechercher les positions des points. Vous utilisez ensuite la fonction Mid pour extraire les caractères qui suivent la deuxième période, mais qui précèdent la troisième période. Enfin, vous appelez la fonction Val pour convertir les caractères retournés par la fonction Mid en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est Text.

  8. Ajoutez la colonne pour la quatrième et dernière partie d’adresse. Dans la colonne à droite de PartII, tapez PartIV : Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(InStr(1,[IPAddress], ». ») +1,[ADRESSE IP], ». ») +1,[ADRESSE IP], ». »))) dans la ligne Champ . L’expression retourne 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 le suivent. Comme vous ne savez pas exactement où se trouve la troisième période, vous appelez la fonction InStr trois fois pour trouver la position de la troisième période. Vous utilisez ensuite la fonction Len pour calculer le nombre de chiffres dans la quatrième partie. Le nombre de chiffres retournés est ensuite utilisé avec la fonction Right pour extraire ce nombre de caractères de la partie droite du champ IPAddress. Enfin, vous appelez la fonction Val pour convertir les caractères retournés par la fonction Mid en nombre. Cette dernière étape est nécessaire, car le type de données sous-jacent est Text.

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

    Important    La ligne De tri de la colonne IPAddress doit être laissée vide.

    Si vous souhaitez trier par d’autres valeurs de champ, en plus des 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 cela, basculez en mode Feuille de données pour voir le résultat des expressions dans les colonnes calculées. Le tableau suivant présente les colonnes que vous verrez en mode Feuille de données.

    MachineID

    Ipaddress

    PartI

    PartII

    PartII

    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. Revenez en mode Création et désactivez la zone case activée 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. Si vous le souhaitez, spécifiez les critères d’exclusion des enregistrements de la requête.

  13. Basculez en mode Feuille de données pour afficher les enregistrements dans l’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 l’entrée de données

Si vous souhaitez valider des adresses sans écrire de code, vous pouvez le faire dans une mesure limitée en définissant la propriété InputMask du champ sur ###.##.##.#.##.### 0;" » et la propriété Format du champ d’adresse IP pour &&&&&&&&&&&&.

Que fait le masque d’entrée ? Lorsque vous commencez à taper dans le champ d’adresse, le masque de saisie vous empêche d’entrer des caractères autres que des nombres 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 d’entrée n’avertit pas 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. .3. » serait accepté comme adresse valide.

Que fait 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.2 .12 », l’adresse s’affiche sous la forme « 354.35.2.12 ». Notez que si vous cliquez à l’intérieur de l’adresse ou appuyez sur F2 (pour passer en mode édition) lorsque l’adresse est sélectionnée, les espaces réapparaissent.

Conseil : Si vous souhaitez 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 copierez pas la chaîne d’adresse qui contient des espaces.

Trier les enregistrements d’un formulaire ou d’un état par adresses IP

Si vous devez créer un formulaire ou un état dans lequel les enregistrements sont triés par adresses IP, basez le nouvel objet sur une requête qui trie les adresses comme décrit précédemment, plutôt que sur la table qui stocke les adresses.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×