חיפוש ב- access

שירה4321

New member
חיפוש ב- access

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

כאשר את מגדירה את השאילתה תגדירי בקרטריונים הרלוונטים את השמות של השדות שיש לך בטופס. ובהגדרה של הלחצן פשוט תקראי לאותה שאילתא. בהצלחה!
 

שירה4321

New member
כך עשיתי... וזה לא עובד טוב.

הגדרתי בלחצן "חפש" שיפעיל את השאילתה. ובקריטריונים כתבתי את השמות של השדות בטופס, הבעיה שאחרי שאני ממלאה את הטופס ולוחצת "חפש" הוא "מתחיל את הגלגל מחדש" ופותח לי comboBox חדשים למלאות שוב את כל הפרטים, ורק אז מציג את השאילתה, על פי מה שמילאתי בפעם השניה.
 
את בטח עובדת בגרסת אקסס בעברית...

במידה וכן, תשני בפרמטר במקום [טפסים] תרשמי [forms] במידה וזה לא יעבוד אני אשלח לך דוגמא.
 

שירה4321

New member
ואוו... זה עובד!! ../images/Emo13.gif

ח"ח על העזרה!! לא האמנתי שזה יעבוד אי-פעם. (אכן יש לי אקסס בעברית) עדיין יש לי שאלה קטנה לגבי זה, ואשמח אם תוכל, אתה או אחרים, לענות לי עליה: בעיקרון אני רוצה ליצור radioButton שיאפשר בחירה באופציית חיפוש של: "או" / "וגם" כלומר, האם לחפש שגם: שם מוצר, חברה ומחיר- מתקיימים או לחפש לפי או: ששם המוצר הוא X או שהחברה היא Y או שהמחיר הוא Z. אני מתארת לעצמי שאני צריכה לבנות שתי שאילתות נפרדות, אחת עבור חיפוש של OR ואחת עבור חיפוש של AND (ההנחה שלי נכונה?) השאלה היא האם יש דרך שכאשר הוא ילחץ על "חפש" הוא אז הוא ידע לפתוח את השאילתה המתאימה לפי ערך ה- radioButton? או שאני צריכה לעשות לחצן עבור כל אופציית חיפוש (שאפשר לעשות אותו visible/notVisible בהתאם לבחירה שלו: "או" או "וגם") - שזו איך שנראה לי דרך פחות יפה? שוב תודה רבה, עזרת לי המון!!
שירה
 
אז ככה...

ראשית אני שמח שזה עובד לך! הדרך הפשוטה היא 1. ליצור 2 שאילתות. 2. להוסיף radio buttons 2 3. לכתוב בכפתור if פשוט אם בחרו את radio button 1 אז תבצע את שאילתא 1 אחרת תבצע את שאילתא 2 בהצלחה!
 

שירה4321

New member
בעיה...

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

שירה4321

New member
הנה הקוד...

If option.InSelection = True Then זה הקוד שהיה בפונקציה עוד לפני, כנראה הוא נוצר מהאשף (שבו בחרתי: פתיחת טופס) stDocName = ChrW(1512) & ChrW(1510) & ChrW(1493) & ChrW(1506) & ChrW(1493) & ChrW(1514) & ChrW(32) & ChrW(1513) & ChrW(1488) & ChrW(1497) & ChrW(1500) & ChrW(1514) & ChrW(1488) DoCmd.OpenForm stDocName, , , stLinkCriteria End If​
איפה הטעות שלי? תודה
 

tal913

New member
שם הטופס

בלי להסתבך, תמחקי את כל הCHR למיניהם ותרשמי את שם הטופס.
 

שירה4321

New member
זה היה כתוב שם, כמובן

עשיתי דבגינג וראיתי שהבעיה בתנאי של option.inSelection=true אני לא מצליחה למצוא תיעוד של VB שמסביר מה עושה הפונ' הזו. אולי אני צריכה להשתמש בפונק' אחרת? או שהתנאי לא כתוב נכון?
 
במקום לכתוב ...

option.inSelection=true תשני ל- option.value=true אני מקווה שאני זוכר נכון כי אין לי כאן אקסס
 

שירה4321

New member
שוב בעיה קטנה... :-\

מתנצלת על עשרות השאלות שיש לי... מוזר, כל דבר שאני מנסה לבצע לא עובד, ואני מכירה את access דווקא טוב.
כשאני מנסה לעשות like על השדה של ה- forms, כך:
like "[forms]![formTry]![text1]*"​
הוא לא מביא לי כלום, ולא עובד (לעומת זאת אם אשים קבוע ולא שדה מטופס- זה עובד?) מה עושים?
 
למעלה