Applies ToAccess لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

يصف هذا الموضوع إجراء فرز عناوين بروتوكول الإنترنت (IP) المخزنة في قاعدة بيانات Access.

مقدمة

إذا كنت تعمل مع عناوين IP، فمن المحتمل أنك تعرف بالفعل أنها ليست مباشرة مثل العمل مع النص أو الأرقام. وذلك لأن عنوان IP هو في الواقع مجموعة من أربع قيم رقمية مفصولة بنقطة (.)، حيث تكون كل قيمة رقما بين 0 و255. يعرض الجدول التالي البيانات قبل تطبيق أي ترتيب فرز.

معرف الجهاز

موظف

الموقع

عنوان 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

يعد فرز عناوين IP في Access تحديا لأن Access لا يوفر نوع بيانات خاصا لتخزين عناوين IP. على الرغم من أن عنوان IP هو مجرد مجموعة من الأرقام، لا يمكنك تخزين عناوين IP في حقل رقمي. وذلك لأن الحقل الرقمي يدعم نقطة عشرية واحدة فقط (.)، بينما يحتوي عنوان IP على ثلاث فترات (.). وهذا يعني أنه يجب تخزين العناوين في حقل نصي.

نظرا لأنك تقوم بتخزين عناوين IP في حقل نصي، لا يمكنك استخدام أزرار الفرز المضمنة في Access لفرز العناوين بطريقة ذات معنى. تقوم أزرار الفرز دائما بفرز القيم في حقل نصي بترتيب أبجدي، حتى لو كانت الأحرف أرقاما. بمعنى آخر، يتم فرز العناوين حسب الرقم الأول، ثم حسب الرقم الثاني، وهكذا، بدلا من القيم الرقمية التي تشكل العنوان. يعرض الجدول التالي العناوين من الجدول السابق الذي تم فرزه بترتيب أبجدي في حقل IPAddress.

معرف الجهاز

عنوان 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

يتم عرض العناوين التي تبدأ ب 1 قبل العناوين التي تبدأ ب 2، وهكذا. يعرض الجدول التالي العناوين بالترتيب التصاعدي الصحيح .

معرف الجهاز

عنوان 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

لتسهيل فهم الخطوات المتضمنة في فرز هذه العناوين، يمكنك تقسيم عناوين IP إلى أربعة أجزاء رقمية. يجب فرز العناوين حسب الجزء الأول، ثم لكل قيمة في الجزء الأول، ثم حسب الجزء الثاني، وما إلى ذلك. يعرض الجدول كل جزء في عمود مختلف، ولأن الأعمدة تحتوي على قيم رقمية بسيطة، يصبح من الممكن فرز الأعمدة من اليسار إلى اليمين بترتيب تصاعدي، كما هو موضح في الجدول التالي.

حزب

الجزء الثاني

الجزء الثاني

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، سيقوم الاستعلام بفرز السجلات حسب الأعمدة الأربعة المحسوبة.

إنشاء الاستعلام

ستقوم بإنشاء استعلام تحديد يسمى 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. أضف العمود لجزء العنوان الثالث. في العمود الموجود على يمين الجزء الثاني، اكتب 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(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) في صف الحقل . يرجع التعبير الأحرف التي تتبع الفترة الأخيرة.

    مرة أخرى، راجع التعبير. المفتاح هو العثور على موقع الفترة الثالثة ثم استخراج جميع الأحرف التي تتبعها. نظرا لأنك لا تعرف بالضبط مكان الفترة الثالثة، يمكنك استدعاء الدالة InStr ثلاث مرات للعثور على موضع الفترة الثالثة. ثم يمكنك استخدام الدالة Len لحساب عدد الأرقام في الجزء الرابع. ثم يتم استخدام عدد الأرقام التي تم إرجاعها مع الدالة Right لاستخراج العديد من الأحرف من الجزء الأيمن من حقل IPAddress. وأخيرا، يمكنك استدعاء الدالة Val لتحويل الأحرف التي تم إرجاعها بواسطة الدالة Mid إلى رقم. هذه الخطوة الأخيرة ضرورية لأن نوع البيانات الأساسي هو نص.

  9. قم بتعيين صف فرز الأعمدة الأربعة المحسوبة إلى تصاعدي.

    مهم    يجب ترك صف الفرز لعمود IPAddress فارغا.

    إذا كنت تريد الفرز حسب قيم الحقول الأخرى، بالإضافة إلى العناوين، فضع الحقول إما إلى يسار الأعمدة الأربعة المحسوبة أو يمينها. لا تضع حقول الفرز الأخرى بين الأعمدة المحسوبة.

  10. الخطوة التالية هي إخفاء الأعمدة الأربعة المحسوبة من ورقة البيانات. ولكن قبل القيام بذلك، قم بالتبديل إلى طريقة عرض ورقة البيانات لمشاهدة نتيجة التعبيرات في الأعمدة المحسوبة. يعرض الجدول التالي الأعمدة التي ستشاهدها في طريقة عرض ورقة البيانات.

    معرف الجهاز

    عنوان IP

    حزب

    الجزء الثاني

    الجزء الثاني

    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 أثناء إدخال البيانات

إذا كنت تريد التحقق من صحة العناوين دون كتابة التعليمات البرمجية، يمكنك القيام بذلك إلى حد محدود عن طريق تعيين الخاصية InputMask للحقل إلى ###.###.####.####; 0;" " وخاصية Format لحقل عنوان IP &&&&&&&&&&&&.

ماذا يفعل قناع الإدخال؟ عند بدء الكتابة في حقل العنوان، يمنعك قناع الإدخال من إدخال أحرف أخرى غير الأرقام والمسافات بين الفترات الثلاث. إذا كان الجزء الرقمي رقما مكونا من رقمين، فاترك الرقم الثالث فارغا أو اكتب مسافة بدلا من ذلك. لاحظ أن قناع الإدخال هذا لا يحذر المستخدم إذا تخطي كتابة جزء واحد أو أكثر من العنوان، أو يكتب المسافات فقط بدلا من قيمة رقمية. على سبيل المثال، "345. .3. سيتم قبول كعنوان صالح.

ماذا يفعل تنسيق العرض؟ عند الانتهاء من كتابة الحقل وتركه، يزيل تنسيق العرض المسافات الموجودة في العنوان ويعرض الأرقام والنقاط فقط. لذلك، إذا كتبت "354.35 .2.12 "، يتم عرض العنوان على أنه "354.35.2.12". لاحظ أنه إذا نقرت داخل العنوان، أو اضغط على F2 (لإدخال وضع التحرير) عند تحديد العنوان، فستظهر المسافات مرة أخرى.

تلميح: إذا كنت تريد نسخ عنوان، فانتقل إلى العمود أو عنصر التحكم السابق، واضغط على TAB لتحديد العنوان المنسق، ثم انقر فوق نسخ. من خلال القيام بذلك، لن تقوم بنسخ سلسلة العنوان التي تحتوي على مسافات.

فرز السجلات في نموذج أو تقرير حسب عناوين IP

إذا كنت بحاجة إلى إنشاء نموذج أو تقرير يتم فيه فرز السجلات حسب عناوين IP، فقم بإسناد العنصر الجديد إلى استعلام يفرز العناوين كما هو موضح سابقا، بدلا من الجدول الذي يخزن العناوين.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.