טופס באקסס

marinalevy

New member
טופס באקסס

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

marinalevy

New member
שאלה נוספת באקסס :

שלום, יש לי טופס באקסס שאני רוצה לפתוח ממנו בעזרת כפתור טופס אחר. באשף הכפתורים אני בוחרת "פעולות טופס" -> "פתח טופס" , לאחר מכן אני בוחרת את הטופס שאני רוצה לפתוח ,ואז את האופציה "לפתוח טופס ולחפש נתונים מסויימים להצגה".אבל הבעיה היא שבדרך הזאת ניתן "לסנכרן" רק בעזרת פרמטרט אחד , ולי יש 4 פרמטרים כאלו. ניסיתי לכתוב מאקרו באשף המקרואים : בחרתי באפשרות "OpenForm" ואז בתנאי "Where" הזנתי את 4 הפרמטרים. אולי עשיתי את זה בצורה שגויה , אבל התוצאה בכלל לא התקבלה. מה אפשר לעשות? תודה מראש על העזרה והכוונה
 

גרי רשף

New member
מה בדיוק כתבת בתנאי?

נסי לכתוב זאת כאן ואולי נגלה מה הייתה הטעות, ונבין מה רצית לעשות מתוך זה.
 

גרי רשף

New member
באופן כללי..

הטופס אמור להציג נתונים של טבלה או שאילתה, והקומבו למעלה צריך להפעיל פילטר על הנתונים. הפעלת הפילטר תתבצע בעזרת קוד (2-3 שורות בסה"כ).
 

marinalevy

New member
עיניין הוא שאני זוכרת שבעבר המלחתי איכשהו

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

גרי רשף

New member
זה לא כל כך מסובך..

..אבל אני מבין שמי שלא רגיל לכתוב קוד מתייאש רק מהמחשבה של לחפש על מה ללחוץ. כללית הקוד של האירוע "לאחר עדכון" של הפקד הוא:
Me.Filter="[MyColumn]='" & Me.MyCombo & "'" Me.FilterOn=True Me.Requery​
 

marinalevy

New member
מצטערת להציג לך שוב פעם, אבל שאלה נוספת:

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

marinalevy

New member
האם קיימת אפשרות לעשות לולאות באקסס?

רצוי מבלי ללמוד VB , אולי ב-SQL .... אנסה להסביר את הבעיה (לצערי, לא טובה בהסברים): יש לי שם שם יצרן וכל ספק רושם אותו איך שבא לו.לדוגמא : היצרן Motorola יכול להופיע בתור "Mot" או "Moto" או "Motorol" וכו'. המטרה שלי שבבסיס הנתונים יוחלף השם לשם גנרי אחיד לכולם - "Motorola". עד עכשיו הכל נוהל באקסל ושם השתמשתי במין LookUp שהכיל 2 עמודות - בעמודה "כינוי" הכנסתי את כל השמות האפשרייים שהספקים משתמשים בהם לתיאור היצרן , ובעמודה "שם יצרן" הכנסתי שמות נכונים. קרה שלאותו יצרן הוקדם מס' שורות, כי היו לו הרבה "כינויים".בעזרת כמה פונקציות באקסל יכולתי ידנית להתאים את הכינוי לשם הנכון. אבל עכשיו השאלה האם אפשר לעשות משהו דומה אוטומטי באקסס , מין לולאה שתרוץ על כינויים בטבלת LookUp , תמצא התאמה ותעדכן בטבלת המוצרים את השם הנכון. אני מקווה שיש משהו באקסס שיכול לעזור.ואם הדרך היחידה לעשות זאת זה ללצוד VB , אין מה לעשות, אצטרך להתחיל ללמוד
מקווה שהסברתי את עצמי תודה רבה מראש לכל עזרה והכוונה.
 

גרי רשף

New member
כללית ניתן לעשות זאת בעזרת SQL

יש להריץ שאילתת עדכון של טבלת הפריטים, שבה יהיה Inner Join בינה לבין טבלת LookUp לפי השם בטבלת הפריטים והשם "הלא נכון" בטבלת ה-LookUp, והעדכון יהיה לעמודת היצרן בטבלת הפריטים שיקבל את הערך "הנכון" מטבלת ה-LookUp.. מקווה שהצלחתי להסביר את עצמי (אם לא- יש לצרף פרטים נוספים על שם הטבלה ושמות העמודות הרלוונטיות).
 

marinalevy

New member
תאורטית, הבנתי את הכיוון, פרקטית - לא יודעת

איך לגשת
. קודם כל - תודה רבה לך על נסובלנות אלי ועל העזרה לשאלות. דבר שני - הינה רשמות הטבלאות והשדות: שם הטבלה :"Products" , והשדות בה הם "Product","Manufacturer","Qty". שם הטבלה : LookUp , והשדות בה הם : "Alias" ,"Manufacturer".(השדה "Alias" זהו שדה של "כינויים".) תודה רבה מראש
 

גרי רשף

New member
נסי כך

צרי שאילתה חדשה, ולתצוגת SQL העתיקי את הקוד הבא:
Update Products Set Manufacturer=LookUp.Manufacturer From Products Inner Join LookUp On Products.Manufacturer=LookUp.Alias​
 

marinalevy

New member
הקוד לא עובד לי ../images/Emo10.gif

העתקתי אותו בשלמותו והאקסס טוען שיש בו טעות. אני גשלתי באתרי SQL וחיפשתי דוגמאות נוספות ל-Inner Join , אבל לא מצליחה לעלות על טעות. תודה רבה מראש על כל עזרה שתוגש
 

marinalevy

New member
אני חושבת שמצאתי את הבעיה - התחביר

שלא עבד באקסס. הקוד שעובד ועושה את העבודה הוא : UPDATE Products INNER JOIN LookUp ON Products.Manufacturer =LookUp.Alias SET Products.Manufacturer = LookUp.Manufacturer; בכל מקרה, תודה רבה על העזרה, ככה למדתי משהו חדש שבכלל לא ידעתי שאפשר לעשות ב-SQL. תודה רבה !!! נ.ב. - עדיין אשמח לקבל עזרה בנושא הפילטרים
 
למעלה