Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

หัวข้อนี้จะอธิบายกระบวนงานสําหรับการเรียงลําดับที่อยู่อินเทอร์เน็ตโพรโทคอล (IP) ที่เก็บอยู่ในฐานข้อมูล Access

บทนำ

ถ้าคุณทํางานกับที่อยู่ IP คุณอาจทราบอยู่แล้วว่ามันไม่ตรงไปตรงมาเหมือนกับการทํางานกับข้อความหรือตัวเลข เนื่องจากที่อยู่ IP คือคอลเลกชันของค่าตัวเลขสี่ค่าที่คั่นด้วยจุด (.) โดยที่แต่ละค่าเป็นตัวเลขระหว่าง 0 และ 255 ตารางต่อไปนี้แสดงข้อมูลก่อนที่จะนําลําดับการจัดเรียงใดๆ ไปใช้

หมายเลขเครื่อง

ลูกจ้าง

ตำแหน่งที่ตั้ง

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

การเรียงลําดับที่อยู่ IP ใน Access เป็นเรื่องท้าทาย เนื่องจาก Access ไม่มีชนิดข้อมูลพิเศษสําหรับจัดเก็บที่อยู่ IP แม้ว่าที่อยู่ IP เป็นเพียงคอลเลกชันของตัวเลข แต่คุณไม่สามารถจัดเก็บที่อยู่ IP ในเขตข้อมูลตัวเลขได้ ทั้งนี้เนื่องจากเขตข้อมูลตัวเลขสนับสนุนเฉพาะจุดทศนิยมเดียว (.) ในขณะที่ที่อยู่ IP มีจุดสามจุด (.) ซึ่งหมายความว่าคุณต้องจัดเก็บที่อยู่ในเขตข้อมูลข้อความ

เนื่องจากคุณจัดเก็บที่อยู่ IP ในเขตข้อมูลข้อความ คุณจะไม่สามารถใช้ปุ่มเรียงลําดับที่มีอยู่แล้วภายใน Access เพื่อเรียงลําดับที่อยู่ด้วยวิธีที่มีความหมายได้ ปุ่มเรียงลําดับจะเรียงลําดับค่าในเขตข้อมูลข้อความตามลําดับตัวอักษรเสมอ แม้ว่าอักขระเหล่านั้นจะเป็นตัวเลขก็ตาม กล่าวคือ ที่อยู่จะถูกเรียงลําดับตามตัวเลขหลักแรก แล้วตามด้วยตัวเลขที่สอง และอื่นๆ แทนที่จะเรียงลําดับตามค่าตัวเลขที่ประกอบขึ้นเป็นที่อยู่ ตารางต่อไปนี้แสดงที่อยู่จากตารางก่อนหน้าที่เรียงลําดับตามตัวอักษรบนเขตข้อมูล IPAddress

หมายเลขเครื่อง

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

ที่อยู่ที่ขึ้นต้นด้วย 1 จะแสดงก่อนที่อยู่ที่ขึ้นต้นด้วย 2 และอื่นๆ ตารางต่อไปนี้แสดงที่อยู่ในลําดับจากน้อยไปหามากที่ถูกต้อง

หมายเลขเครื่อง

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

เพื่อให้เข้าใจขั้นตอนที่เกี่ยวข้องกับการเรียงลําดับที่อยู่เหล่านี้ได้ง่ายขึ้น ให้คุณแบ่งที่อยู่ IP ออกเป็นส่วนตัวเลขสี่ส่วน ที่อยู่ต้องเรียงลําดับตามส่วนแรก จากนั้นสําหรับแต่ละค่าในส่วนแรก จากนั้นตามด้วยส่วนที่สอง และอื่นๆ ตารางจะแสดงแต่ละส่วนในคอลัมน์ที่ต่างกัน และเนื่องจากคอลัมน์เก็บค่าตัวเลขอย่างง่าย จึงเป็นไปได้ที่จะเรียงลําดับคอลัมน์จากซ้ายไปขวาจากน้อยไปหามาก ดังที่แสดงในตารางต่อไปนี้

PartI

PartII

PartIII

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

การเรียงลําดับสี่ส่วนแยกจากกันคือเคล็ดลับเบื้องหลังการเรียงลําดับที่อยู่ IP ในกระบวนงานที่ตามมา ให้คุณสร้างคิวรีที่นอกเหนือจากเขตข้อมูลที่อยู่ IP จะมีคอลัมน์จากการคํานวณสี่คอลัมน์ที่แต่ละคอลัมน์จัดเก็บส่วนหนึ่งของค่าที่อยู่ คอลัมน์ที่คํานวณคอลัมน์แรกจะเก็บส่วนที่เป็นตัวเลขส่วนแรกของที่อยู่ คอลัมน์ที่คํานวณคอลัมน์ที่สองจะเก็บส่วนที่เป็นตัวเลขที่สองของที่อยู่ และอื่นๆ แทนที่จะเรียงลําดับระเบียนตามเขตข้อมูล IPAddress คิวรีจะเรียงลําดับระเบียนตามคอลัมน์จากการคํานวณทั้งสี่คอลัมน์

สร้างคิวรี

คุณจะสร้างคิวรีแบบใช้เลือกข้อมูลที่ชื่อว่า Sorted IPAddresses ที่แสดงระเบียนในลําดับจากน้อยไปหามากของที่อยู่ IP สมมติว่า ฐานข้อมูลปัจจุบันมีตารางที่ชื่อว่า MachineDetails ที่มีเขตข้อมูลข้อความที่ชื่อว่า IPAddress

  1. คลิก สร้าง > ออกแบบคิวรี 

  2. เลือก เพิ่มตาราง (แสดงตาราง ใน Access) แล้วลาก รายละเอียดเครื่อง ไปยังส่วนบนของมุมมองออกแบบ

  3. ลากเขตข้อมูล MachineID และ IPAddress ไปยังตารางออกแบบคิวรี

  4. ขณะนี้คุณพร้อมที่จะเพิ่มคอลัมน์จากการคํานวณแล้ว ในคอลัมน์ว่างคอลัมน์แรกทางด้านขวา ให้พิมพ์นิพจน์ PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) ในแถว เขตข้อมูล นิพจน์จะส่งกลับอักขระที่อยู่ก่อนหน้าจุดแรก (.) ในเขตข้อมูล IPAddress

    ตอนนี้ตรวจสอบนิพจน์ เนื่องจากคุณไม่ทราบจํานวนหลักที่ประกอบขึ้นเป็นส่วนแรกของที่อยู่ ให้คุณใช้ฟังก์ชัน InStr เพื่อหาตําแหน่งของช่วงเวลาแรก การลบ 1 (เพื่อแยกจุด) จะส่งกลับจํานวนหลักตัวเลขในส่วนแรก ให้คุณใช้ตัวเลขนี้กับฟังก์ชัน Left เพื่อแยกอักขระหลายตัวเริ่มต้นจากอักขระซ้ายสุดจากเขตข้อมูล IPAddress สุดท้าย คุณเรียกใช้ฟังก์ชัน Val เพื่อแปลงอักขระที่ส่งกลับโดยฟังก์ชัน Left เป็นตัวเลข ขั้นตอนสุดท้ายนี้จําเป็นเนื่องจากชนิดข้อมูลต้นแบบคือ ข้อความ

  5. บันทึกคิวรีด้วยการคลิก บันทึก บนแถบเครื่องมือด่วน เป็นความคิดที่ดีที่จะทําเช่นนี้หลังจากแต่ละขั้นตอนกลาง

  6. เพิ่มคอลัมน์สําหรับส่วนที่อยู่ที่สอง ในคอลัมน์ทางด้านขวาของ PartI ให้พิมพ์ PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) ในแถว เขตข้อมูล นิพจน์จะส่งกลับอักขระที่อยู่ระหว่างจุดแรกและจุดที่สองในเขตข้อมูล IPAddress

    ตรวจสอบนิพจน์อีกครั้ง เนื่องจากคุณไม่ทราบจํานวนหลักตัวเลขที่ประกอบขึ้นเป็นส่วนที่สองของที่อยู่ หรือตําแหน่งเริ่มต้นของส่วนที่สอง (เนื่องจากคุณไม่ทราบระยะเวลาที่ส่วนแรกเป็น) ให้คุณใช้ฟังก์ชัน InStr เพื่อค้นหาตําแหน่งของช่วงเวลา จากนั้น ให้ใช้ฟังก์ชัน Mid เพื่อแยกอักขระที่ตามหลังจุดแรกแต่นําหน้าช่วงเวลาที่สอง สุดท้าย คุณเรียกใช้ฟังก์ชัน Val เพื่อแปลงอักขระที่ส่งกลับโดยฟังก์ชัน Mid เป็นตัวเลข ขั้นตอนสุดท้ายนี้จําเป็นเนื่องจากชนิดข้อมูลต้นแบบคือ ข้อความ

  7. เพิ่มคอลัมน์สําหรับส่วนที่อยู่ที่สาม ในคอลัมน์ทางด้านขวาของ PartII ให้พิมพ์ PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) ในแถว เขตข้อมูล นิพจน์จะส่งกลับอักขระที่อยู่ระหว่างจุดที่สองและจุดที่สามในเขตข้อมูล IPAddress

    ตรวจสอบนิพจน์อีกครั้ง เนื่องจากคุณไม่ทราบจํานวนหลักตัวเลขที่ประกอบขึ้นเป็นส่วนที่สามของที่อยู่หรือตําแหน่งที่ส่วนที่สามเริ่มต้น (เนื่องจากคุณไม่ทราบระยะเวลาที่ส่วนแรกและส่วนที่สอง) ให้คุณใช้ฟังก์ชัน InStr เพื่อค้นหาตําแหน่งของช่วงเวลา จากนั้น ให้ใช้ฟังก์ชัน Mid เพื่อแยกอักขระที่ตามหลังจุดที่สอง แต่จะนําหน้าเครื่องหมายมหัพภาคที่สาม สุดท้าย คุณเรียกใช้ฟังก์ชัน Val เพื่อแปลงอักขระที่ส่งกลับโดยฟังก์ชัน Mid เป็นตัวเลข ขั้นตอนสุดท้ายนี้จําเป็นเนื่องจากชนิดข้อมูลต้นแบบคือ ข้อความ

  8. เพิ่มคอลัมน์สําหรับส่วนที่อยู่ที่สี่และสุดท้าย ในคอลัมน์ทางด้านขวาของ PartIII ให้พิมพ์ PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) ในแถว เขตข้อมูล นิพจน์จะส่งกลับอักขระที่อยู่หลังจุดสุดท้าย

    ตรวจสอบนิพจน์อีกครั้ง กุญแจสําคัญคือการหาตําแหน่งของช่วงเวลาที่สามแล้วแยกอักขระทั้งหมดที่ตามมา เนื่องจากคุณไม่ทราบตําแหน่งของช่วงเวลาที่สาม คุณจึงเรียกฟังก์ชัน InStr สามครั้งเพื่อค้นหาตําแหน่งของช่วงเวลาที่สาม จากนั้นคุณสามารถใช้ฟังก์ชัน Len เพื่อคํานวณจํานวนหลักตัวเลขในส่วนที่สี่ จํานวนหลักที่ส่งกลับจะถูกใช้กับฟังก์ชัน Right เพื่อแยกอักขระจํานวนมากจากส่วนขวาของเขตข้อมูล IPAddress สุดท้าย คุณเรียกใช้ฟังก์ชัน Val เพื่อแปลงอักขระที่ส่งกลับโดยฟังก์ชัน Mid เป็นตัวเลข ขั้นตอนสุดท้ายนี้จําเป็นเนื่องจากชนิดข้อมูลต้นแบบคือ ข้อความ

  9. ตั้งค่าแถว เรียงลําดับ ของทั้งสี่คอลัมน์จากการคํานวณเป็น จากน้อยไปหามาก

    สำคัญ    แถว เรียงลําดับ ของคอลัมน์ IPAddress ต้องเว้นว่างไว้

    ถ้าคุณต้องการเรียงลําดับตามค่าเขตข้อมูลอื่นๆ นอกเหนือจากที่อยู่ ให้วางเขตข้อมูลทางด้านซ้ายหรือขวาของคอลัมน์จากการคํานวณทั้งสี่คอลัมน์ อย่าวางเขตข้อมูลที่เรียงลําดับอื่นระหว่างคอลัมน์จากการคํานวณ

  10. ขั้นตอนถัดไปคือการซ่อนคอลัมน์จากการคํานวณสี่คอลัมน์จากแผ่นข้อมูล แต่ก่อนที่คุณจะทําเช่นนั้น ให้สลับไปยังมุมมองแผ่นข้อมูลเพื่อดูผลลัพธ์ของนิพจน์ในคอลัมน์จากการคํานวณ ตารางต่อไปนี้แสดงคอลัมน์ที่คุณจะเห็นในมุมมองแผ่นข้อมูล

    หมายเลขเครื่อง

    IPAddress

    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

    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. สลับกลับไปยังมุมมองออกแบบ และล้างกล่องกาเครื่องหมายในแถว แสดง ของทั้งสี่คอลัมน์จากการคํานวณ ซึ่งจะป้องกันไม่ให้คอลัมน์จากการคํานวณแสดงในมุมมองแผ่นข้อมูล

  12. อีกทางหนึ่งคือ ระบุเกณฑ์สําหรับการแยกระเบียนจากคิวรี

  13. สลับไปยังมุมมองแผ่นข้อมูลเพื่อดูระเบียนตามลําดับการเรียงลําดับ คุณจะเห็นระเบียนที่เรียงลําดับจากน้อยไปหามากของที่อยู่ IP อย่างถูกต้อง

การใช้เพิ่มเติมสําหรับที่อยู่ IP ที่เรียงลําดับ

ตรวจสอบที่อยู่ IP ระหว่างการป้อนข้อมูล

ถ้าคุณต้องการตรวจสอบความถูกต้องของที่อยู่ที่ไม่มีการเขียนโค้ด คุณสามารถทําได้อย่างจํากัดโดยการตั้งค่าคุณสมบัติ รูปแบบการป้อนข้อมูล ของเขตข้อมูลเป็น ###.##.#.##; 0;" " และคุณสมบัติ รูปแบบ ของเขตข้อมูลที่อยู่ IP ไปยัง &&&&&&&&&&&&

รูปแบบการป้อนข้อมูลทําหน้าที่อะไร เมื่อคุณเริ่มพิมพ์ในเขตข้อมูลที่อยู่ รูปแบบการป้อนข้อมูลจะป้องกันไม่ให้คุณใส่อักขระอื่นที่ไม่ใช่ตัวเลขและช่องว่างระหว่างจุดสามจุด ถ้าส่วนตัวเลขเป็นตัวเลขสองหลัก ให้ปล่อยตัวเลขที่สามว่างไว้หรือพิมพ์ช่องว่างแทน โปรดทราบว่ารูปแบบการป้อนข้อมูลนี้จะไม่เตือนผู้ใช้ถ้าเขาข้ามการพิมพ์ส่วนของที่อยู่อย่างน้อยหนึ่งส่วน หรือพิมพ์เฉพาะช่องว่างแทนที่จะเป็นค่าตัวเลข ตัวอย่างเช่น "345 .3. " จะได้รับการยอมรับว่าเป็นที่อยู่ที่ถูกต้อง

รูปแบบการแสดงผลทําอะไรได้บ้าง เมื่อคุณพิมพ์เสร็จแล้วและออกจากเขตข้อมูล รูปแบบการแสดงจะเอาช่องว่างในที่อยู่ออก และแสดงเฉพาะตัวเลขและจุด ดังนั้น ถ้าคุณพิมพ์ "354.35 .2 .12 " ที่อยู่จะแสดงเป็น "354.35.2.12" โปรดทราบว่าถ้าคุณคลิกภายในที่อยู่ หรือกด F2 (เพื่อเข้าสู่โหมดแก้ไข) เมื่อเลือกที่อยู่ ช่องว่างจะปรากฏขึ้นอีกครั้ง

เคล็ดลับ: ถ้าคุณต้องการคัดลอกที่อยู่ ให้ย้ายไปยังคอลัมน์หรือตัวควบคุมก่อนหน้า กด TAB เพื่อเลือกที่อยู่ที่จัดรูปแบบ แล้วคลิก คัดลอก ด้วยการทําเช่นนี้ คุณจะไม่คัดลอกสตริงที่อยู่ที่มีช่องว่าง

การเรียงลําดับระเบียนในฟอร์มหรือรายงานตามที่อยู่ IP

ถ้าคุณต้องการสร้างฟอร์มหรือรายงานที่เรียงลําดับระเบียนตามที่อยู่ IP ให้ยึดวัตถุใหม่ที่เรียงลําดับที่อยู่ตามที่อธิบายไว้ก่อนหน้านี้ แทนที่จะเป็นตารางที่จัดเก็บที่อยู่

ด้านบนของหน้า

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย