שאלה ב-access2000

InnerKid

New member
שאלה ב-access2000

שלום נניח ויש לי טבלה שבה אני מחזיק שמות של ערים בארץ (טבלה פשוטה עם שני שדות - מפתח-מספר רץ, ושם העיר). כמו כן יש לי טופס, שבו יש שדה שהוא בעצם combo box שמקושר לטבלת הערים - וממנו אני בוחר את העיר, לפי הרשימה. את השדה הזה בטופס אני לא מגביל לרשימה בלבד, כלומר, אם קיימת עיר שלא נמצאת בטבלת הערים, אפשר יהיה לכתוב אותה בשדה. הבעיה היא, שאני רוצה עבור כל עיר שלא קיימת בטבלה המקורית (כלומר שלא קיימת בתיבת הגלילה של השדה הזה) ונרשמה בשדה הזה, שתתעדכן בטבלת הערים המקורית, כדי שאם ידרש שימוש נוסף בערך הזה (כלומר העיר הזו) אז אפשר יהיה לבחור אותה מתוך תיבת הגלילה (כיוון שהיא בטבלה) השאלה שלי אם כן היא איך אני עושה דבר כזה. אני מצליח לא להגביל את ה-combo box לרשימה עצמה, אבל אני לא מצליח לגרום לערך הזה להישמר בטבלת הערים המקורית. למישהו יש רעיונות? תודה רבה מאור.
 

yossin

New member
אתה צריך להוסיף קוד

שבודק אם הערך שנבחר קיים בטבלה ואם לא, להריץ SQL משהו בערך כך: if dcount() = 0 docmd.runsql "insert" אבל- אם אתה רוצה להכניס כל עיר חדשה לטבלת הערים אולי שווה לך לעשות משהו מתוחכם יותר שיכתוב בטופס (ומה שעומד מאחוריו) רק את המס"ד של העיר ולא את שמה- ככה שאם אתה מתקן שם עיר (למשל- עקב טעות כתיב) זה משתרשר אוטומטית לטבלה השניה. מצד שני, למה אתה רוצה להוסיף כל עיר לטבלת הערים ? יש ערים נידחות שיופיעו רק פעם בדור ולא ברור שכדאי להוסיף כל עיירה לטבלת הערים דבר ש"יפוצץ" אותה ויהפוך את הקומבו למאוד לא יעיל
 

InnerKid

New member
תודה ושאלה נוספת

מה שחשבתי לעשות הוא להפעיל event של not on list על הקומבו, הבעייה היא שאני לא יודע את הVB קוד להזנת ערך לתוך טבלה (זה קצת מורכב עד כמה שזכור לי). בנוגע למס"ד - זה מה שאני כבר ממילא עושה גם כרגע - כי הרשימה היא רשימה של שמות הערים, אבל הטבלה ששומרת את כל הרשומה, ששדה עיר הוא חלק ממנה, שומרת אותה כמספר, אבל למשתמש אני מציג את השם (הרי למשתמש לא יהיה מה לעשות עם מספרים בלבד..) הקומבו ממויין לפי סדר א"ב, כך שזה מייעל את החיפוש בתוכו. העניין הוא שאין לי קריטריון למדוד איזו עיר תיכנס ואיזו לא, ולכן אני מעדיף להכניס כל עיר לתוך הקומבו, מאשר שתהיה עיר שצריכה להיות שם, והיא לא תהיה קיימת, מה שיגרום למשתמש להזין אותה ידנית כל פעם מחדש, ואת זה אני רוצה למנוע.
 

yossin

New member
עצתי לך:

מנסיוני: תגדיר טבלת ערים ומסך לעדכון טבלת הערים ובמסך שלך יהיו שני שדות: קוד עיר ושם עיר (אם קוד העיר ריק) כך המשתמש יכול להוסיף את הערים הרלוונטיות לו. יש בישראל מאות יישובים. אם כל "תל ציפציפים" יכנס לטבלה תקבל קומבו מטורף ומאוד !!! לא יעיל. שווה שתשקול שוב נקודה זו. מה האפליקציה, מה צריך המשתמש וכד´ מה שאנו עשינו באפליקציה דומה זה שיש שדה קוד עיר (המשתמשים מכירים את הקודים העיקריים בע"פ עם הזמן). דאבל קליק עליו פותח את רשימת הערים לבחור ממנה את העיר הרצויה ובנוסף, יש שדה לתיקתוק חופשי של שם העיר. הנסיון שלנו הוא שזה הכי נוח מבחינת הנדסת אנוש למשתמשים.
 

InnerKid

New member
אתה צודק, אבל זה מעלה עוד שאלה...

כנראה שבאמת הדרך הטובה ביותר היא להוסיף טופס של עדכון ערים בטבלה אם רוצים להוסיף עיר באופן קבוע. השאלה שמתעוררת במקרה הזה היא, אם משתמש הזין עיר שלא קיימת בקומבו, כי הוא מאפשר גם ערכים דלא נמצאים בתוכו, איך זה נשמר בטבלה ששומרת את כל הרשומה. כרגע, השדה של עיר נשמר ברשומה כמספר, ורק המשתמש רואה את הטקסט. אם משתמש מוסיף עיר כלשהי שלא מהרשימה, אין לה ID ונוצרת בעיה לרשום את זה בטבלה - אלא אם אני משנה את הטבלה שבה נשמרות הרשומות, שישמור שם את שם העיר ולא את ה ID שלה. אכן כך?
 

yossin

New member
מה שאנחנו עשינו זה

שבטבלה היו שני שדות: שדה קוד עיר ושדה שם עיר. שדה שם העיר ריק כאשר יש קוד עיר ומקבל ערך כששדה קוד העיר ריק. בשאילתה כדי לסדר לפי ערים הקמנו שדה מדומה ובו הכנסנו את שם העיר מתוך רשימת הערים או את שם העיר מהטבלה כשלא היה קוד עיר
 

InnerKid

New member
הבנתי את הרעיון ../images/Emo51.gif

האמת היא שנראה לי מורכב מדי לעשות את זה עם 2 שדות ושדה מדומה וכו´. נניח ואני מוותר על עדכון טבלת הערים עבור ערך בקומבו שלא מופיע שם, ואני רוצה לשמור בשדה העיר שלי עיר שלא היתה, האם הדרך היחידה הנוספת היא לשמור בטבלה את שם העיר במקום את הקוד?
 

א ו ר ח ת

New member
יש לי בדיוק את מה שאתה מחפש....

מישהו בעבר נתן לי את הקוד הזה אז אם תרצה תשאיר אימל אני אשלח לך ( או בהודעה הפרטית תשלח אימל) ואז מה שנשאר לך רק קופי פסט
 

InnerKid

New member
למה לא, אני אשמח ../images/Emo13.gif

האימייל שלי זה [email protected]
 
למעלה