עזרה באקסס - חיפוש בטופס
-
שלום וברכה,
יש לי טופס שמוצגים בו נתונים בתוך טופס משנה. אני מעוניין שתהיה תיבת חיפוש בטופס שטופס המשנה יסונן לפי הנתונים שמוקלדים בה.
אפשר גם שהטופס לא יסונן, אבל יבחרו הנתונים שמתאימים.
אשמח לעזרה איך ליצור תיבה כזו.
תודה רבה!! -
@איש-פלוני
אולי זה יוכל לעזור לך. -
@איש-ימיני תודה, אבל זה מסביר איך עושים חיפוש בכמה שדות ביחד, אבל לא מסביר איך יוצרים את החיפוש. אני צריך לדעת איך יוצרים את החיפוש.
-
@איש-פלוני נא עיין בחוקי הפורום:
פרסום מקביל: אין לפתוח נושא בתחומים על נושא שנפתח על ידי אותו כותב (או מי מטעמו) בפורום/אתר אחר במקביל, ולהיפך - אין לפתוח בפורומים אחרים נושא שנפתח פה, אלא אם כן מדובר בנושא של בקשת עזרה וכדומה ועברו שלושה ימים לפחות מהפרסום המקורי בהם לא התקבלה העזרה המבוקשת בנושא.
-
@odeddvir לא ידעתי. מתנצל. לא יקרה שוב.
עכ"פ, אשמח לעזרה... -
@איש-פלוני אם אתה מתכוון לסינון, זה מבוצע בקלות על ידי המאפיין Filter של הטופס:
למשלMe.Filter = "UserID=" & ID
לגבי שאר שאלותיך, אני נמנע מלהשיב כי אין לי פניות לעכל שאילתות או קוד מעורב בעברית ואנגלית, וכל שכן להשיב עליהן, בנוסף זה מסובך שבעתיים מעל גבי הפורום.
אני שוב מציע לך להשתמש בשמות שדות ופקדים באנגלית בלבד, על אף שזה נראה פחות נוח. -
@odeddvir
סליחה שאני שואל, אבל אין לי את הידע לדעת מה התכוונת...
מה שמוקף במרכאות זה שם התיבה שבה יש את הנתונים שלפיהם צריך לסנן?
והID שאחרי ה& זה שם השדה שיסונן לפי הנתונים בתיבה?
לגבי אנגלית, התחלתי כבר להשתמש בחלק מהשמות באנגלית לפי מה שיעצת לי בעבר, אבל אני עדיין צריך להתרגל. -
@איש-פלוני אמר בעזרה באקסס - חיפוש בטופס:
סליחה שאני שואל, אבל אין לי את הידע לדעת מה התכוונת...
מה שמוקף במרכאות זה שם התיבה שבה יש את הנתונים שלפיהם צריך לסנן?
והID שאחרי ה& זה שם השדה שיסונן לפי הנתונים בתיבה?אותו דבר, רק הפוך:
Me.Filter = "[InTable]=" & Me.InForm
תבדוק אם זה מספיק, כי לכאו' תצטרך לעשות איזה הפעלה של הפילטר ו/או ריענון.
-
@avi-rz
אני כותב מה עשיתי:
יצרתי תיבת טקסט, הגדרתי בארוע "בעת לחיצה על מקש", קודMe.Filter = "[משפחה]=" & Me.InForm
הקלדתי שם משפחה בתיבה ו.... לא עשה כלום.
כנראה לא הבנתי נכון משהו. במה טעיתי? -
-
תנסה לעשות "אחרי עדכון", ולראות אם זה עובד.
-
תנסה אחרי זה לרענן.
-
או אולי להוסיף הקוד הבא:
Me.FilterOn = True
-
-
@avi-rz
עשיתי ככה:
וכשאני מקליד אות עולה לי הודעת שגיאה:
-
@איש-פלוני
ברור זה אמור להיות בתוך פונקציה.
אני רואה שבינתיים לא השתמשת בפונקציה של העדכון ולקרוא לה,
אז תכניס את זה בכל מקום שכתבת, "Me.filter = ...."
שורה מתחת. -
@avi-rz עשיתי ככה:
אז עכשיו הוא לא מעלה לי הודעת שגיאה כשאני מקליד, אבל עדיין לא מסנן שום דבר בטופס לפי מה שבתיבה... -
@איש-פלוני
תוסיףMe.Requery
-
-
@איש-פלוני
עוד שורה בסוף הפונקציה של אחרי עדכון. -
@avi-rz לא עוזר.
-
@avi-rz
אגב, שמתי לב שאתה מסנן לפי מחרוזת אז תוסיף גרשיים לפני ואחרי השדה שלפיו יהיה הסינון. כך:Me.Filter = "[משפחה]=" & """" & Me.InForm & """"
-
@avi-rz
אם זה עדיין לא עובד = אז זה כנראה בעיה אחרת בחלק לא משותף.
תוכל לבדוק גם:DoCmd.SetFilter , "[משפחה]=" & """" & Me.InForm & """"
-
@avi-rz אמר בעזרה באקסס - חיפוש בטופס:
@avi-rz
אגב, שמתי לב שאתה מסנן לפי מחרוזת אז תוסיף גרשיים לפני ואחרי השדה שלפיו יהיה הסינון. כך:Me.Filter = "[משפחה]=" & """" & Me.InForm & """" ```
לא עזר
תוכל לבדוק גם:
DoCmd.SetFilter , "[משפחה]=" & """" & Me.InForm & """"
מעלה:
וכשאני לוחץ דיבוג:
-
@איש-פלוני
כותב שהטופס לא מאוגד. -
@avi-rz מה זה אומר?
-
@איש-פלוני
תפתח את המאפיינים של הטופס > נתונים >מקור רשומה > תבחר את הטבלה של התורמים.
-
@avi-rz שיניתי את מקור הטופס הראשי לאותו מקור טופס של טופס המשנה,
כעת הוא לא נותן לי להקליד שום דבר בתיבה, כל מקש שאני לוחץ זה כאילו לחצתי על טאב והוא עובר לי לרשומה הראשונה בטופס המשנה. -
@איש-פלוני פיתרון פשוט מאוד!
תעשה שהטופס המשנה יהיה מבוסס על שאילתה, עם קריטריון שמתאים לשדה בטופס הראשי שאתה רוצה לסנן.
ואז תכניס אירוע אחרי עדכון של תיבת החיפוש שירענן את הטופס המשני.
ככהme.שם פקד טופס המשנה.Requery
-
@katz איך אני מגדיר בשאילתה קריטוריון שמתאים ל"מה שכתוב בתיבת טקסט פלונית"?
-
@איש-פלוני אמר בעזרה באקסס - חיפוש בטופס:
שיניתי את מקור הטופס הראשי לאותו מקור טופס של טופס המשנה,
כעת הוא לא נותן לי להקליד שום דבר בתיבה, כל מקש שאני לוחץ זה כאילו לחצתי על טאב והוא עובר לי לרשומה הראשונה בטופס המשנה.תמחק את כל הפונקציות בכל הקשה,
ותשאיר רק את ה"אחרי עדכון". -
@איש-פלוני
נניח יש לך עמודה "עיר" ואתה רוצה לעשות בטופס הראשי תיבה משולבת עם שמות ערים, אז בשאילתה בעמודה של עיר אתה מכניס קרטריון כזה=[forms].[שם טופס ראשי].[שם תיבה משולבת]
-
@avi-rz לא עזר, עכשיו אני יכול להקליד, אבל לא מסנן לי כלום.
-
@katz אמר בעזרה באקסס - חיפוש בטופס:
@איש-פלוני
נניח יש לך עמודה "עיר" ואתה רוצה לעשות בטופס הראשי תיבה משולבת עם שמות ערים, אז בשאילתה בעמודה של עיר אתה מכניס קרטריון כזה
=[forms].[שם טופס ראשי].[שם תיבה משולבת]
זה לא תיבה משולבת אלא תיבת טקסט, שאפשר להקליד בה גם חלק משם המשפחה, לדוג' אם אכתוב "אברמ" יציג לי גם "אברמוביץ" וגם "אברמסקי".