Řazení IP adres v Accessu

Poznámka: Snažíme se pro vás co nejrychleji zajistit aktuální obsah nápovědy ve vašem jazyce. Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát ve spodní části této stránky vědět, jestli vám informace v článku pomohly? Pokud byste se rádi podívali na jeho anglickou verzi, najdete ji tady.

Toto téma popisuje postup pro řazení IP adres (Internet Protocol) uložených v databázi Access.

Úvod

Pokud pracujete s IP adresami, pravděpodobně už víte, že nefunguje stejně jako práce s textem nebo čísly. Je to proto, že IP adresa je ve skutečnosti souborem čtyř číselných hodnot oddělených tečkou (.), kde každá hodnota je číslo mezi 0 a 255. Následující tabulka zobrazuje data před použitím pořadí řazení.

MachineID

Zaměstnance

Umístě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

Řazení IP adres v Accessu je výzvou, protože Access neposkytuje zvláštní datový typ pro ukládání IP adres. I když IP adresa představuje jenom kolekci čísel, nemůžete ukládat IP adresy do číselných polí. Je to proto, že číselné pole podporuje jenom jedno desetinné místo (.), zatímco IP adresa obsahuje tři tečky (.). To znamená, že adresy musíte uložit do textového pole.

Protože v textovém poli ukládáte IP adresy, nemůžete pomocí předdefinovaných tlačítek pro řazení v aplikaci Access řadit adresy smysluplným způsobem. Tlačítka pro řazení vždy řadí hodnoty v textovém poli v abecedním pořadí, a to i v případě, že jsou znaky čísla. V jiných slovech jsou adresy řazeny podle první číslice, pak podle druhé číslice, atd., místo číselných hodnot, které tvoří adresu. Následující tabulka zobrazuje adresy z předchozí tabulky seřazené podle abecedy v poli Adresa_IP.

MachineID

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

Adresy začínající číslem 1 se zobrazují před adresami, které začínají na 2 atd. V následující tabulce jsou adresy uvedeny ve správném vzestupném pořadí.

MachineID

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

Chcete-li usnadnit pochopení kroků, které se týkají řazení těchto adres, přerušíte IP adresy na čtyři číselné části. Adresy musí být seřazené podle první části, pak pro každou hodnotu v první části, pak podle druhé části a tak dále. Tabulka zobrazuje jednotlivé části v jiném sloupci a protože sloupce obsahují jednoduché číselné hodnoty, je možné řadit sloupce zleva doprava vzestupně podle následující tabulky.

PartI

PartII

PartIII

PartIV

1

198

3

93

32

183

93

40

104

končí

244

2

104

244

4

1

104

244

253

čl

123

4

245

listopadu

SeŘazení čtyř částí je štychem za řazení IP adres. V následujícím postupu vytvoříte dotaz, který kromě pole IP adresa obsahuje čtyři počítané sloupce, do kterých každý sloupec ukládá část hodnot adresy. První počítaný sloupec bude mít první číselnou část adresy, druhý počítaný sloupec bude mít druhou číselnou část adresy atd. Namísto řazení záznamů podle pole Adresa_IP seřadí dotaz záznamy podle čtyř počítaných sloupců.

Vytvoření dotazu

Vytvoří se výběrový dotaz s názvem seřazené adresy IP, ve kterém jsou záznamy zobrazeny vzestupně. Předpokládejme, že aktuální databáze obsahuje tabulku s názvem MachineDetails, která obsahuje textové pole s názvem IPAddress.

  1. Klikněte na vytvořit Návrh dotazu>. 

  2. V dialogovém okně Zobrazit tabulku klikněte na kartě tabulky na MachineDetails a potom klikněte na Přidat. Zavřete dialogové okno.

  3. Přetáhněte pole MachineID a Adresa_IP do návrhové mřížky dotazu.

  4. Nyní můžete přidat počítané sloupce. Do prvního prázdného sloupce vpravo zadejte výraz PartI: Val (Left ([Adresa_IP], (InStr (1; [Adresa_IP]; ".") -1) )) v řádku pole . Výraz vrátí znaky předcházející první tečkě (.) v poli Adresa_IP.

    Projděte si výraz. Protože nevíte, kolik číslic tvoří první část adresy, pomocí funkce InStr Najděte pozici prvního období. Odečtení čísla 1 (za účelem vyloučení období) vrátí počet číslic v první části. Pomocí tohoto čísla pak pomocí funkce Left extrahujete tento počet znaků, který začíná od znaku zleva, z pole Adresa_IP. Nakonec zavoláte funkci Val , která převede znaky vrácené funkcí zleva do čísla. Tento poslední krok je nutný, protože podkladový datový typ je text.

  5. Uložte dotaz kliknutím na Uložit na panelu nástrojů Rychlý přístup. To je vhodné udělat po každém mezilehlém kroku.

  6. Přidejte sloupec pro druhou část adresy. Ve sloupci vpravo od PartI zadejte partii: Val (část ([Adresa_IP], InStr (1; [Adresa_IP], ".") + 1, InStr (InStr (1; [Adresa_IP], ".") + 1; [Adresa_IP], ".") -InStr (1; [Adresa_IP], ".") -1)) v řádku pole . Výraz vrátí znaky, které jsou umístěné mezi první a druhou tečkou v poli Adresa_IP.

    Opakujte tento výraz. Vzhledem k tomu, že nevíte, kolik číslic tvoří druhou část adresy, nebo přesně místo, kde se druhá část začne (protože nejste v první části delší), můžete pozice období zjistit pomocí funkce InStr . Pomocí funkce Mid pak extrahujete znaky, které následují za prvním obdobím, ale předchází druhému období. Nakonec zavoláte funkci Val , která převede znaky vrácené funkcí Mid na číslo. Tento poslední krok je nutný, protože podkladový datový typ je text.

  7. Přidejte sloupec pro část třetí adresy. Ve sloupci vpravo od PartII zadejte PartIII: Val (část ([Adresa_IP], InStr (InStr (1; [Adresa_IP], "."). + 1; [Adresa_IP], ".") + 1, InStr (InStr (InStr (1; [Adresa_IP]; ".") + 1; [Adresa_IP], ".") + 1; [Adresa_IP], ".") -InStr (InStr (1; [Adresa_IP]; ".") + 1; [Adresa_IP], ".") -1)) v řádku pole . Výraz vrátí znaky, které jsou umístěné mezi druhou a třetí tečkou v poli Adresa_IP.

    Opakujte tento výraz. Protože nevíte, kolik číslic tvoří třetí část adresy, nebo přesně místo, kde se třetí část začíná (protože nevíte, jak dlouho se první a druhá část nachází), použijte k vyhledání pozic období funkci InStr . Pomocí funkce Mid pak extrahujete znaky, které následují po druhém období, ale předcházejí třetímu období. Nakonec zavoláte funkci Val , která převede znaky vrácené funkcí Mid na číslo. Tento poslední krok je nutný, protože podkladový datový typ je text.

  8. Přidejte sloupec pro čtvrtou a poslední část adresy. Ve sloupci vpravo od PartIII zadejte PartIV: Val (Right ([Adresa_IP], len ([Adresa_IP])-InStr (InStr (InStr (1; [Adresa_IP]; ".") + 1; [Adresa_IP], ".") + 1; [Adresa_IP], ".") )) v řádku pole . Výraz vrátí znaky, které následují za posledním tečkou.

    Opakujte tento výraz. Klíčem je najít umístění třetí tečky a potom extrahovat všechny znaky, které následují. Vzhledem k tomu, že nevíte přesně, kde se třetí tečka nachází, stačí zavolat funkci InStr , která zjistí pozici třetího období. Pomocí funkce Délka pak vypočítáte počet číslic ve čtvrté části. Počet vrácených číslic se pak používá s funkcí Right , která extrahuje tento počet znaků z pravé části pole Adresa_IP. Nakonec zavoláte funkci Val , která převede znaky vrácené funkcí Mid na číslo. Tento poslední krok je nutný, protože podkladový datový typ je text.

  9. Nastavte řádek řazení všech čtyř počítaných sloupců na vzestupné.

    Upozornění    Řádek řazení sloupce Adresa_IP musí zůstat prázdný.

    Pokud chcete, aby se kromě adres seřadilo podle dalších hodnot polí, umístěte pole buď nalevo nebo napravo od všech čtyř počítaných sloupců. Ostatní pole pro řazení neMěňte mezi počítané sloupce.

  10. Dalším krokem je skrytí čtyř počítaných sloupců z datového listu. Než to provedete, přepněte do zobrazení Datový list, abyste viděli výsledek výrazů ve výpočtových sloupcích. Následující tabulka obsahuje sloupce, které se zobrazí v zobrazení Datový list.

    MachineID

    IP

    PartI

    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

    končí

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    čl

    1

    123.4.245.23

    123

    4

    245

    listopadu

  11. Přepněte zpátky do návrhového zobrazení a zrušte zaškrtnutí políčka v řádku Zobrazit všech čtyř počítaných sloupců. Tím zabráníte zobrazení počítaných sloupců v zobrazení Datový list.

  12. Můžete také zadat kritéria pro vyloučení záznamů z dotazu.

  13. Pokud chcete zobrazit záznamy v seřazeném pořadí, přepněte do zobrazení Datový list. Záznamy se zobrazí správně seřazené vzestupně podle IP adres.

Další použití pro řazení IP adres

Ověření IP adres při zadávání dat

Pokud chcete ověřovat adresy bez psaní kódu, můžete to provést do omezené míry nastavením vlastnosti vstupní maska pole na # ##. ## #. # # #. # # #; # # # # # # # # # #; 0; " " a vlastnost Formát pro pole IP adresy na &&&&&&&&&&&&.

Co dělá vstupní maska? Když začnete psát do pole adresa, vstupní maska vám zabrání v zadávání znaků kromě čísel a mezer mezi tři tečky. Pokud je číselná část číslo s dvojnásobnou číslicí, nechte třetí číslici prázdnou, nebo zadejte mezeru. Uvědomte si, že tato vstupní maska uživatele nevaruje, pokud přeskočí zadání jedné nebo více částí adresy nebo pouze místo číselné hodnoty. Třeba "345. 3000. "bylo přijato jako platná adresa.

Co dělá formát zobrazení? Když dokončíte zadávání a necháte pole, formát zobrazení odebere mezery z adresy a zobrazí jenom čísla a tečky. Takže pokud jste zadali "354,35 0,2 .12", adresa se zobrazí jako "354.35.2.12". Všimněte si, že když na adresu klepnete, nebo při výběru adresy stisknete klávesu F2 (Chcete-li přejít do režimu úprav), mezery se znovu zobrazí.

Tip: Pokud chcete zkopírovat adresu, přejděte na předchozí sloupec nebo ovládací prvek, stisknutím klávesy TAB vyberte naformátovanou adresu a potom klikněte na Kopírovat. Tímto způsobem nezkopírujete řetězec adresy obsahující mezery.

Řazení záznamů ve formuláři nebo sestavě podle IP adres

Pokud potřebujete vytvořit formulář nebo sestavu, ve které jsou záznamy seřazené podle IP adres, založte nový objekt na dotaz, který seřadí adresy podle předchozího popisu, místo v tabulce, kde jsou adresy uloženy.

Začátek stránky

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×