נושא זה מתאר את ההליך למיון כתובות פרוטוקול אינטרנט (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 לארבעה חלקים מספריים. יש למיין את הכתובות לפי החלק הראשון ולאחר מכן עבור כל ערך בחלק הראשון, לאחר מכן לפי החלק השני וכן הלאה. הטבלה מציגה כל חלק בעמודה אחרת, ומ מכיוון שהעמודות מכילות ערכים מספריים פשוטים, ניתן למיין את העמודות משמאל לימין בסדר עולה, כפי שמוצג בטבלה הבאה.
בינה מלאכותית |
תותים תותים |
5000000000 |
חלקIV (חלק 4) |
---|---|---|---|
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.
-
לחץ על צור > שאילתה.
-
בחר הוסף טבלאות (הצג טבלה ב- Access) וגרור את פרטי מחשב אל המקטע העליון של תצוגת עיצוב.
-
גרור את השדות MachineID ו- IPAddress לרשת עיצוב השאילתה.
-
כעת אתה מוכן להוסיף את העמודות המחושבות. בעמודה הריקה הראשונה משמאל, הקלד את הביטוי PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1)))בשורה שדה. הביטוי מחזיר את התווים המופיעים לפני התקופה הראשונה (.) בשדה IPAddress.
כעת, סקור את הביטוי. מאחר שאינך יודע כמה ספרות כוללות את החלק הראשון של הכתובת, השתמש בפונקציה InStr כדי למצוא את המיקום של התקופה הראשונה. חיסור 1 (כדי לא לכלול את התקופה) מחזיר את מספר הספרות בחלק הראשון. לאחר מכן, השתמש במספר זה עם הפונקציה Left כדי לחלץ תווים רבים אלה, החל מהתו השמאלי ביותר, מהשדות IPAddress. לבסוף, עליך לקרוא לפונקציה Val כדי להמיר את התווים המוחזרים על-ידי הפונקציה Left למספר. שלב אחרון זה נחוץ מאחר שסוג הנתונים המשמשים כטקסט הוא טקסט.
-
שמור את השאילתה על-ידי לחיצה על שמור בסרגל הכלים לגישה מהירה. מומלץ לעשות זאת לאחר כל שלב ביניים.
-
הוסף את העמודה עבור חלק הכתובת השני. בעמודה משמאל ל- PartI, הקלד PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1))בשורה שדה. הביטוי מחזיר את התווים הממוקמים בין התקופות הראשונות והשנייה בשדה IPAddress.
שוב, סקור את הביטוי. מאחר שאינך יודע כמה ספרות הן החלק השני של הכתובת או היכן מתחיל החלק השני בדיוק (מכיוון שאינך יודע כמה זמן הוא החלק הראשון), עליך להשתמש בפונקציה InStr כדי למצוא את מיקומי התקופות. לאחר מכן, השתמש בפונקציה Mid כדי לחלץ את התווים המופיעים אחרי התקופה הראשונה, אך לפני הנקודה השניה. לבסוף, עליך לקרוא לפונקציה Val כדי להמיר את התווים המוחזרים על-ידי הפונקציה Mid למספר. שלב אחרון זה נחוץ מאחר שסוג הנתונים המשמשים כטקסט הוא טקסט.
-
הוסף את העמודה עבור חלק הכתובת השלישי. בעמודה משמאל ל- 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 למספר. שלב אחרון זה נחוץ מאחר שסוג הנתונים המשמשים כטקסט הוא טקסט.
-
הוסף את העמודה עבור החלק הרביעי והכתובת הסופית. בעמודה משמאל ל- PartIII, הקלד PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))בשורה שדה. הביטוי מחזיר את התווים שמופיעים לאחר התקופה האחרונה.
שוב, סקור את הביטוי. המפתח הוא למצוא את המיקום של התקופה השלישית ולאחר מכן לחלץ את כל התווים שמופיעים אחריה. מאחר שאינך יודע בדיוק היכן נמצאת התקופה השלישית, עליך לקרוא לפונקציה InStr שלוש פעמים כדי למצוא את המיקום של התקופה השלישית. לאחר מכן, השתמש בפונקציה Len כדי לחשב את מספר הספרות בחלק הרביעי. לאחר מכן, מספר הספרות המוחזרות נמצא בשימוש עם הפונקציה Right כדי לחלץ תווים רבים אלה מהקצה השמאלי של השדה IPAddress. לבסוף, עליך לקרוא לפונקציה Val כדי להמיר את התווים המוחזרים על-ידי הפונקציה Mid למספר. שלב אחרון זה נחוץ מאחר שסוג הנתונים המשמשים כטקסט הוא טקסט.
-
הגדר את השורה מיון של כל ארבע העמודות המחושבות בסדר עולה.
חשוב השורה 'מיון' של העמודה IPAddress חייבת להיות ריקה.
אם ברצונך למיין לפי ערכי שדות אחרים, בנוסף לכתובות, מקם את השדות משמאל או מימין לכל ארבע העמודות המחושבות. אל תמקם את שדות המיון האחרים בין העמודות המחושבות.
-
השלב הבא הוא להסתיר את ארבע העמודות המחושבות מתוך גליון הנתונים. אך לפני הפעולה, עבור לתצוגת גליון נתונים כדי לראות את תוצאת הביטויים בעמודות המחושבות. הטבלה הבאה מציגה את העמודות שתראה בתצוגת גליון נתונים.
מזהה מחשב
כתובת IP
בינה מלאכותית
תותים תותים
5000000000
חלקIV (חלק 4)
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
-
חזור לתצוגת עיצוב ונקה את תיבת הסימון בשורה הצג של כל ארבע העמודות המחושבות. פעולה זו מונעת את הצגת העמודות המחושבות בתצוגת גליון נתונים.
-
אם תרצה, ציין קריטריונים לאי-הכללת רשומות בשאילתה.
-
עבור לתצוגת גליון נתונים כדי לראות את הרשומות בסדר ממוינות. תראה את הרשומות ממוינות כראוי בסדר עולה של כתובות ה- IP.
שימושים נוספים עבור כתובות IP ממוינות
אימות כתובות IP במהלך הזנת נתונים
אם ברצונך לאמת כתובות מבלי לכתוב קוד, תוכל לעשות זאת במידה מוגבלת על-ידי הגדרת המאפיין InputMask של השדה ל- ###.###.###.##.####; 0;" " והמאפיין Format של שדה כתובת ה- IP&&&&&&&&&&&&.
מה עושה מסיכת הקלט? כאשר אתה מתחיל להקליד בשדה הכתובת, מסיכת הקלט מונעת ממך להזין תווים שאינם מספרים ורווחים בין שלוש התקופות. אם חלק מספרי הוא מספר בעל ספרות כפולות, השאר את הספרה השלישית ריקה או הקלד רווח במקום זאת. שים לב שמסיכות קלט אלה אינן מזהירות את המשתמש אם הוא מדלג על הקלדת חלק אחד או יותר של הכתובת, או מקליד רווחים בלבד במקום ערך מספרי. לדוגמה, "345. .3. " יתקבלו ככתובת חוקית.
מה עושה תבנית התצוגה? לאחר שתסיים להקליד ותעזוב את השדה, תבנית התצוגה תסיר את הרווחים בכתובת ותציג רק את המספרים והתקופות. לכן, אם הקלדת "354.35 .2 .12", הכתובת תוצג כ- "354.35.2.12". שים לב שאם תלחץ בתוך הכתובת, או תקיש F2 (כדי להיכנס למצב עריכה) כאשר הכתובת נבחרת, הרווחים יופיעו שוב.
עצה: אם ברצונך להעתיק כתובת, עבור לעמודה או לפקד הקודמים, הקש TAB כדי לבחור את הכתובת המעוצבת ולאחר מכן לחץ על העתק. פעולה זו אינה מעתיקה את מחרוזת הכתובת המכילה רווחים.
מיון רשומות בטופס או בדוח לפי כתובות IP
אם עליך ליצור טופס או דוח שבהם הרשומות ממוינות לפי כתובות IP, בסס את האובייקט החדש על שאילתה שממייןת כתובות כפי שתואר קודם לכן, במקום על הטבלה המאחסנת את הכתובות.