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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אקסס SQL: תנאי כפול (לא בני גד)

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

מתוזמן נעוץ נעול הועבר תכנות
10 פוסטים 4 כותבים 231 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • בעזרתוב מנותק
    בעזרתוב מנותק
    בעזרתו
    כתב ב נערך לאחרונה על ידי
    #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
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום