טופס חיפוש באקסס
-
דבר ראשון רוב תודות ל@OdedDvir אני בעיצומה של בניית מערכת מתפללי בית מדרש עם טבלת תרומות וטבלת חיובי עליות והכל בהתאמה להדרכה שהעלית פה בעבר לבניית מערכת ניהול תורמים.
ולעצם השאלה
אני יודע שכבר דנו בזה בעבר ועשיתי חיפוש בפורום אך עדיין לא יצאתי ברור מה עובד ומה לא.
אני זקוק להוראות כיצד ליצור תיבת חיפוש בתוך טופס שתחפש בתוך הטבלה שמקושרת לטופס ותביא לי את הטופס המבוקש.
מדובר על טבלה עם מאגר שמות, אני מעונין לעשות חיפוש (נניח) לפי שם משפחה ושם פרטי, כיצד עושים זאת?ועוד שאלה האם יש אפשרות לכתוב בתוך הטופס בשדה של המספר מזהה (ID) מספר מסויים והוא יביא לי את שאר הפרטים של אותו מספר מזהה? מכיון שזה ערך שמוזן אוטומטית אני לא יכול להזין שם שום דבר אפי' שכשעשיתי תיבה משולבת מתוך הרשימה של הID הוא לא נתן לי לבחור, האם יש אופציה כזו.
-
@ג-ינג-י כתב בטופס חיפוש באקסס:
ותביא לי את הטופס המבוקש.
אפשר קצת יותר לפשט את זה.
לגופו של ענין, כדאי יותר להביא צילומי מסך, סקיצה או ציור שיוכולו לדמיין יותר על מה מדובר.
@ג-ינג-י כתב בטופס חיפוש באקסס:
ועוד שאלה האם יש אפשרות לכתוב בתוך הטופס בשדה של המספר מזהה (ID) מספר מסויים והוא יביא לי את שאר הפרטים של אותו מספר מזהה? מכיון שזה ערך שמוזן אוטומטית אני לא יכול להזין שם שום דבר אפי' שכשעשיתי תיבה משולבת מתוך הרשימה של הID הוא לא נתן לי לבחור, האם יש אופציה כזו.
???
-
@avi-rz כתב בטופס חיפוש באקסס:
@ג-ינג-י כתב בטופס חיפוש באקסס:
ותביא לי את הטופס המבוקש.
אפשר קצת יותר לפשט את זה.
יש לי טבלה עם נתוני אנשים (שם, משפחה, וכו') ויצרתי טופס שמקושר לטבלה אני מעונין להוסיף אופציה של חיפוש בטופס - שזה יחפש ברשומות של הטבלה - ושהתוצאה תופיע בתור טופס (ראיתי כל מיני נוסחאות לחיפוש ברשת אבל זה היה חיפוש מתוך טבלה והתוצאה הופיעה בתור שורה בתוך טבלה, אני מעונין שזה יופיע בתור טופס).
לגופו של ענין, כדאי יותר להביא צילומי מסך, סקיצה או ציור שיוכולו לדמיין יותר על מה מדובר.
@ג-ינג-י כתב בטופס חיפוש באקסס:
ועוד שאלה האם יש אפשרות לכתוב בתוך הטופס בשדה של המספר מזהה (ID) מספר מסויים והוא יביא לי את שאר הפרטים של אותו מספר מזהה? מכיון שזה ערך שמוזן אוטומטית אני לא יכול להזין שם שום דבר אפי' שכשעשיתי תיבה משולבת מתוך הרשימה של הID הוא לא נתן לי לבחור, האם יש אופציה כזו.
???
לכל רשומה יש מספר מזהה ובטופס אפשר לשנות את הפרטים של כל רשומה חוץ מאת המספר המזהה, אני שאלתי אם יש אופציה לשנות את המספר המזהה אבל שזה לא ישנה את המספר המזהה לרשומה שאני נמצא בתוכה אלא שזה יביא לי את הרשומה שמקושרת למספר הזמהה שאני מקיש.@laswater
אני בהחלט חושב שלחצן חיפוש יעזור, אבל כפי שפירטתי למעלה אני רוצה לחצן חיפוש שיביא לי את התוצאה בתור טופס ולא בתור שורה מתוך טבלה.תודה רבה לעוזרים.
-
@ג-ינג-י כתב בטופס חיפוש באקסס:
יש לי טבלה עם נתוני אנשים (שם, משפחה, וכו') ויצרתי טופס שמקושר לטבלה אני מעונין להוסיף אופציה של חיפוש בטופס - שזה יחפש ברשומות של הטבלה - ושהתוצאה תופיע בתור טופס (ראיתי כל מיני נוסחאות לחיפוש ברשת אבל זה היה חיפוש מתוך טבלה והתוצאה הופיעה בתור שורה בתוך טבלה, אני מעונין שזה יופיע בתור טופס).
אם אני מבין נכון, יש לך טופס שמציג את כל השורות שיש בטבלה, ואתה רוצה שבתיבת טקסט תוכל לכתוב טקסט, ובלחיצת כפתור או באירוע לאחר עדכון, אתה רוצה שהשדות בטופס יהיו מסוננים,
אז בגדול ישנם ב' דרכים לעשות את זה:
א: בוא נאמר שאתה רוצה לסנן בעמודה בשם "שם_מלא"
אז אתה מכניס משפט לסינון וכותב משהו כמו השורות הבאות:Me.Form.Filter = "[שם_מלא]Like'*" & Me.תיבת_חיפוש.Value & "*'" ME.Form.FilterOn = True
ב: את רוצה כנ"ל, אתה יכול גם בכלל לשנות את המקור של הטופס, שאתה כתבת שאתה מחבר את הטופס לטבלה של האנשים, בעצם מאותו רגע שאתה רוצה לסנן אתה לא מחבר אותו ישר לטבלה הנ"ל, אלא לשאילתה שהיא מסנן את הטבלה הנ"ל לפי התיבת טקסט, משהו כמו זה:
'לכתוב את המשפט SQL / השאילתה בעצמה strSql = "select * FROM טבלת_אנשים WHERE (((שם_מלא) Like '*" & Me.תיבת_חיפוש.value & "*'));" 'להחליף את המקור של הטופס בשאילתה הנל Me.RecordSource = strSql 'ואולי גם לרענן - (יכול להיות שזה קורה לבד) me.Requery
כמובן קודם אולי לבדוק שיש בתיבת חיפוש משהו, או שבאמת לא כ"כ צריך כי אז יוצא שהוא מסנן **
וישנה אפשרות גם להרחיב את הסינון לעוד עמודות עם "AND"וכו'..
בהצלחה
-
כתבתי פעם מדריך קצר לזה בפורום אופיס:
http://forum-office.co.il/topic/32/מדריך-יצירת-שאילתת-חיפוש-בשדות-מרובים-בטבלה?_=1683108292675 -
@OdedDvir כתב בטופס חיפוש באקסס:
כתבתי פעם מדריך קצר לזה בפורום אופיס:
http://forum-office.co.il/topic/32/מדריך-יצירת-שאילתת-חיפוש-בשדות-מרובים-בטבלה?_=1683108292675מומלץ בחום, יודע על אנשים שהתחילו עם זה, והגיעו במהירות להישגים יפים.
-
@ג-ינג-י @OdedDvir
אני משתמש עם הקוד הזה. בכל חיפושי הטפסים, נראה לי הרבה יותר קל.
בעת יציאה מתיבת החיפוש שכאן הוא txtFind הוא מבצע את החיפוש.
(אפשר להכניס אותו תוך כדי כתיבה ב'בעת שינוי', אבל בהרבה נתונים הוא ממש מאיט את העבודה)
והטופס משנה אצלי נקרא fsubForm
במקרה שאין טופס משנה, רק רוצים חיפוש בטופס הנוכחי, צריך להוריד את הfsubForm בכל המופעיםOn Error GoTo err Dim ctl As Control Dim strFilter As String If Me.fsubForm.SourceObject = "" Then Exit Sub If Len(Me.txtFind.text) < 1 Then Me.fsubForm.Form.FilterOn = False Exit Sub Else End If For Each ctl In Me.fsubForm.Form.Controls 'Me.Controls If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then 'רק פקדי טקסט If Left(ctl.ControlSource, 1) <> "=" Then 'דלג על תיבות טקסט מחושבים strFilter = strFilter & "[" & ctl.ControlSource & "] Like " & Chr(34) & "*" & txtFind.text & "*" & Chr(34) & " OR " End If End If Next strFilter = Left(strFilter, Len(strFilter) - 4) Me.fsubForm.Form.Filter = strFilter Me.fsubForm.Form.FilterOn = True Exit Sub err: Me.fsubForm.Form.Filter = "" Me.fsubForm.Form.FilterOn = False