• דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

אקסס SQL: תנאי כפול (לא בני גד)

מתוזמן נעוץ נעול הועבר תכנות
10 פוסטים 4 כותבים 93 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ב מנותק
    ב מנותק
    בעזרתו
    כתב ב נערך לאחרונה על ידי
    #1

    איך עושים בצורה הכי פשוטה, תנאי, שיחול רק בתנאי.
    ואסביר, אם אני משתמש בIIF או בswitch במשפט WHERE, זה נותן לי רק תנאי השוואה על תנאי. אם אני רוצה תנאים יותר מורכבים, כגון,
    אם טקסטבוקס פלוני מלא, הצג רק את הרשומות השוות לאותו טקסט.
    אם התאריך בתיבה הנ"ל הוא 11 בספטמבר 2001, הצג הכל.
    ואם היא ריקה, הצג רשומות between תאריך פלוני לתאריך פלמוני. את זה IIF לא נותן, משום שהוא מחזיר ערך אחד, ואותו הWHERE משווה לערך בשדה.
    מקווה שהדברים הובנו כהלכתם.

    WWWW תגובה 1 תגובה אחרונה
    0
  • S מנותק
    S מנותק
    Shmuel754
    כתב ב נערך לאחרונה על ידי
    #2

    תעשה פונקציה בVBA שיחזיר את הWHERE המתאים לתנאים.

    תגובה 1 תגובה אחרונה
    1
  • ב מנותק
    ב מנותק
    בעזרתו
    כתב ב נערך לאחרונה על ידי
    #3

    כלומר, הפונקציה תחזיר מחרוזת WHERE מלאה? SQL מקבל את זה?

    תגובה 1 תגובה אחרונה
    0
  • S מנותק
    S מנותק
    Shmuel754
    כתב ב נערך לאחרונה על ידי
    #4

    השאלה מאיפה אתה מפעיל את השאילתה.

    ב תגובה 1 תגובה אחרונה
    1
  • ב מנותק
    ב מנותק
    בעזרתו
    השיב לShmuel754 ב נערך לאחרונה על ידי
    #5

    @Shmuel754 אמר באקסס SQL: תנאי כפול (לא בני גד):

    השאלה מאיפה אתה מפעיל את השאילתה.

    זה ברור שאם אני עורך את ה-sourcerecord של הטופס/דוח בקוד, אני יכול לעשות ככל העולה על רוחי. אבל אני העדפתי כן שאילתה שמורה ופשוטה באקסס.

    S תגובה 1 תגובה אחרונה
    0
  • WWWW מנותק
    WWWW מנותק
    WWW
    השיב לבעזרתו ב נערך לאחרונה על ידי
    #6

    @בעזרתו אתה רוצה תנאי מקונן?

    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

    תגובה 1 תגובה אחרונה
    0
  • ב מנותק
    ב מנותק
    בעזרתו
    כתב ב נערך לאחרונה על ידי
    #7

    כן. אבל:
    א. תנאי מקונן בSQL ולא בקוד.
    ב. התנאי יתן לי תנאי ולא ערך.

    dovidD תגובה 1 תגובה אחרונה
    0
  • S מנותק
    S מנותק
    Shmuel754
    השיב לבעזרתו ב נערך לאחרונה על ידי
    #8

    @בעזרתו אמר באקסס SQL: תנאי כפול (לא בני גד):

    @Shmuel754 אמר באקסס SQL: תנאי כפול (לא בני גד):

    השאלה מאיפה אתה מפעיל את השאילתה.

    זה ברור שאם אני עורך את ה-sourcerecord של הטופס/דוח בקוד, אני יכול לעשות ככל העולה על רוחי. אבל אני העדפתי כן שאילתה שמורה ופשוטה באקסס.

    תשמור את השאילתה ללא תנאי, ובקוד תשלוף את השאילתה ותצמיד את התנאי מהפונקציה ותפעיל.

    תגובה 1 תגובה אחרונה
    1
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לבעזרתו ב נערך לאחרונה על ידי dovid
    #9

    אם טקסטבוקס פלוני מלא, הצג רק את הרשומות השוות לאותו טקסט.
    אם התאריך בתיבה הנ"ל הוא 11 בספטמבר 2001, הצג הכל.
    ואם היא ריקה, הצג רשומות between תאריך פלוני לתאריך פלמוני. את זה IIF לא נותן, משום שהוא מחזיר ערך אחד, ואותו הWHERE משווה לערך בשדה.

    @בעזרתו תעשה את זה עםשילוב של AND וOR

    
    WHERE
    (textBox = "11 בספטמבר 2001") OR
    (textBox <> "" AND Field like textBox) OR 
    (textBox = "" AND Field2 between dateA and dateB) 
    
    

    כמו"כ כמו ש@Shmuel754 כתב תוכל לעשות פונקציה שמקבלת את כלל השדות הנלקחים בחשבון ומחזירה כן או לא ואז הכל בWHERE ככה:

    WHERE MyFunc(field1, field2, textBox)
    

    לדעתי כל עוד אפשר להימנע מפונקציה זה עדיף כי זה פחות בר התייעלות במנוע הפנימי של אקסס.

    אפשר ליצור קשר dovid@tchumim.com

    ב תגובה 1 תגובה אחרונה
    4
  • ב מנותק
    ב מנותק
    בעזרתו
    השיב לdovid ב נערך לאחרונה על ידי
    #10

    @dovid אמר באקסס SQL: תנאי כפול (לא בני גד):

    אם טקסטבוקס פלוני מלא, הצג רק את הרשומות השוות לאותו טקסט.
    אם התאריך בתיבה הנ"ל הוא 11 בספטמבר 2001, הצג הכל.
    ואם היא ריקה, הצג רשומות between תאריך פלוני לתאריך פלמוני. את זה IIF לא נותן, משום שהוא מחזיר ערך אחד, ואותו הWHERE משווה לערך בשדה.

    @בעזרתו תעשה את זה עםשילוב של AND וOR

    
    WHERE
    (textBox = "11 בספטמבר 2001") OR
    (textBox <> "" AND Field like textBox) OR 
    (textBox = "" AND Field2 between dateA and dateB) 
    
    

    כמו"כ כמו ש@Shmuel754 כתב תוכל לעשות פונקציה שמקבלת את כלל השדות הנלקחים בחשבון ומחזירה כן או לא ואז הכל בWHERE ככה:

    WHERE MyFunc(field1, field2, textBox)
    

    לדעתי כל עוד אפשר להימנע מפונקציה זה עדיף כי זה פחות בר התייעלות במנוע הפנימי של אקסס.

    דוד המלך.
    לכזה דבר חיכיתי, כמה פשוט ככה פשוט.
    תודה.

    תגובה 1 תגובה אחרונה
    1

  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.