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

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

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

שדה מחושב באקסס

מתוזמן נעוץ נעול הועבר תוכנה
33 פוסטים 4 כותבים 1.6k צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • יהודי טובי יהודי טוב

    @OdedDvir
    ניסיתי עכשיו את הנכתב לעיל (שדה מחושב), אך הוא מציג לי רק את הלקוחות שכבר שילמו, לקוח שלא מופיע בטבלה של התשלומים לא מופיע בשאילתא.

    זה נראה לי מוזר, לא??

    תודה רבה

    OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    כתב ב נערך לאחרונה על ידי OdedDvir
    #24

    @יהודי-טוב
    כי לקחת רק את הרשומות שבקבלת התשלומים. אתה צריך לבצע LeftJoin בין שתי הטבלאות של הלקוחות והתשלומים, כמו שכתבתי למעלה.
    בתצוגת עיצוב של השאילתא תוסיף את שתי הטבלאות, ותגרור את השדה ID מטבלת הלקוחות לשדה מזהה לקוח שבתשלומים, אתה צריך אח"כ לערוך את הקשר כך שיבחר את כל הרשומות מטבלת הלקוחות ורק את הרשומות המתאימות מטבלת התשלומים, ואז הקו בין שתי הטבלאות יהפוך לחץ מהלקוחות לתשלומים. את שדה מזהה הלקוח אתה צריך לקחת דווקא מטבלת הלקוחות (כי הרי אתה רוצה להציג את כולם), ותבנה את שאר השאילתא כמו קודם (קיבוץ לפי ID ומקסימום תאריך רכישה)

    יהודי טובי תגובה 1 תגובה אחרונה
    2
    • OdedDvirO OdedDvir

      מה הכוונה שזה סם כניסה לשאר הטכנולוגיות, שהם בנויים על אותו עיקרון??
      (אני לא מכיר את השפות שהזכרת)

      התכוונתי שאתה נמשך שלא במתכוון ללמוד אותם, למשל SQL זו השפה שבה כתובות השאילתות באקסס, כשאתה עורך שאילתא בתצוגת עיצוב ומוסיף שדות עם תנאים וכו, תוכל לעבור אח"כ לתצוגת SQL ולראות איך נראית השאילתא בשפת SQL. אגב, אם תרצה לכתוב שאילתות מורכבות כמו איחוד או בדיקה האם רשומה לא נמצאת בטבלה אחרת, תצטרך להכיר קצת SQL.
      לגבי WinForms זו הסביבה של פיתוח הטפסים, בטח שמת לב שלכל טופס יש אירועים מקושרים וכן מאפיינים שונים. רוב התוכנות השולחניות כיום עדיין משתמשות בטכנולוגיה של WinForms, למרות שהיא מיושנת מבחינת יכולות וביצועים. ז"א אם תרצה למשל לכתוב תוכנה בC# תוכל לעצב עדיין את הטפסים בממשק די דומה לשל Access.
      ואת VisualBasic אתה מכיר כבר, כי VBA היא תת קבוצה של ויזואל בייסיק, שנקראת Visual Basic for Applications או בקיצור VBA. כך שאם תתחיל לכתוב בVB התחביר דומה מאד...

      אגב איך אתה התקדמת?? רק ממדריכים באנגלית??

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

      א מנותק
      א מנותק
      איש יהודי
      כתב ב נערך לאחרונה על ידי איש יהודי
      #25

      @OdedDvir

      והמשכתי דרך סרטונים ביוטוב של סטיב בישופ,

      מי זה ומה זה אם אפשר קישור לסרטונים שלו

      Ishyeudi1@gmail.com

      OdedDvirO תגובה 1 תגובה אחרונה
      0
      • א איש יהודי

        @OdedDvir

        והמשכתי דרך סרטונים ביוטוב של סטיב בישופ,

        מי זה ומה זה אם אפשר קישור לסרטונים שלו

        OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        כתב ב נערך לאחרונה על ידי
        #26

        @איש-יהודי אמר בשדה מחושב באקסס:

        מי זה ומה זה אם אפשר קישור לסרטונים שלו

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


        אולי תוכל לבקש מהם לפתוח את כל הפלייליסט

        תגובה 1 תגובה אחרונה
        3
        • OdedDvirO OdedDvir

          @יהודי-טוב
          כי לקחת רק את הרשומות שבקבלת התשלומים. אתה צריך לבצע LeftJoin בין שתי הטבלאות של הלקוחות והתשלומים, כמו שכתבתי למעלה.
          בתצוגת עיצוב של השאילתא תוסיף את שתי הטבלאות, ותגרור את השדה ID מטבלת הלקוחות לשדה מזהה לקוח שבתשלומים, אתה צריך אח"כ לערוך את הקשר כך שיבחר את כל הרשומות מטבלת הלקוחות ורק את הרשומות המתאימות מטבלת התשלומים, ואז הקו בין שתי הטבלאות יהפוך לחץ מהלקוחות לתשלומים. את שדה מזהה הלקוח אתה צריך לקחת דווקא מטבלת הלקוחות (כי הרי אתה רוצה להציג את כולם), ותבנה את שאר השאילתא כמו קודם (קיבוץ לפי ID ומקסימום תאריך רכישה)

          יהודי טובי מנותק
          יהודי טובי מנותק
          יהודי טוב
          כתב ב נערך לאחרונה על ידי יהודי טוב
          #27

          @OdedDvir
          תודה.

          זה אכן מה שהיה חסר לי

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

            @OdedDvir
            עוד שאלה אחת קטנה (מקווה)

            איך אני מגדיר שלא ישמור את הנתונים שמזינים בטופס אא"כ מאשרים את זה בפקד שמירה או משהו כזה?

            OdedDvirO תגובה 1 תגובה אחרונה
            1
            • יהודי טובי יהודי טוב

              @OdedDvir
              עוד שאלה אחת קטנה (מקווה)

              איך אני מגדיר שלא ישמור את הנתונים שמזינים בטופס אא"כ מאשרים את זה בפקד שמירה או משהו כזה?

              OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              כתב ב נערך לאחרונה על ידי
              #29

              @יהודי-טוב אתה צריך להשתמש בקוד VBA ואירוע הטופס BeforeUpdate (או "לפני עדכון" בעברית)
              במאפייני טופס > ארוע > לפני עדכון > בחר בפרוצדורת ארוע
              בחלון ה VBE הכנס את הקוד הבא (היישר מאתר מיקרוסופט:)

              Private Sub Form_BeforeUpdate(Cancel As Integer)
              
                 ' This procedure checks to see if the data on the form has
                 ' changed. If the data has changed, the procedure prompts the
                 ' user to continue with the save operation or to cancel it. Then
                 ' the action that triggered the BeforeUpdate event is completed.
              
                 Dim ctl As Control
              
                 On Error GoTo Err_BeforeUpdate
              
                 ' The Dirty property is True if the record has been changed.
                 If Me.Dirty Then
                    ' Prompt to confirm the save operation.
                    If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
                            "Save Record") = vbNo Then
                       Me.Undo
                    End If
                 End If
              
              Exit_BeforeUpdate:
                 Exit Sub
              
              Err_BeforeUpdate:
                 MsgBox Err.Number & " " & Err.Description
                 Resume Exit_BeforeUpdate
              End Sub
              

              סגור את העורך ושמור את הטופס.

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

                @OdedDvir אמר בשדה מחושב באקסס:

                סגור את העורך ושמור את הטופס.

                תודה רבה

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

                תודה רבה

                OdedDvirO תגובה 1 תגובה אחרונה
                1
                • יהודי טובי יהודי טוב

                  @OdedDvir אמר בשדה מחושב באקסס:

                  סגור את העורך ושמור את הטופס.

                  תודה רבה

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

                  תודה רבה

                  OdedDvirO מנותק
                  OdedDvirO מנותק
                  OdedDvir
                  כתב ב נערך לאחרונה על ידי
                  #31

                  @יהודי-טוב אמר בשדה מחושב באקסס:

                  אם לא קשה לך אני יודה לך תוכל לחלץ לי את השורה שגורמת לכך שלא ישמור.

                  אתה יכול לעשות משהו כזה:

                  Private Sub Form_BeforeUpdate(Cancel As Integer)
                      On Error GoTo Err_BeforeUpdate
                      
                      If Me.Dirty Then Me.Undo
                  
                  Exit_BeforeUpdate:
                     Exit Sub
                  
                  Err_BeforeUpdate:
                     MsgBox Err.Number & " " & Err.Description
                     Resume Exit_BeforeUpdate
                  End Sub
                  
                  

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

                  Dim UserWantsToSave As Boolean
                  
                  Private Sub Form_Current()
                      UserWantsToSave = False
                  End Sub
                  Private Sub cmdSave_Click()
                      UserWantsToSave = True
                      Me.Dirty = False
                  End Sub
                  
                  Private Sub Form_BeforeUpdate(Cancel As Integer)
                      On Error GoTo Err_BeforeUpdate
                      
                      If UserWantsToSave Then Exit Sub
                      If Me.Dirty Then Me.Undo
                  
                  Exit_BeforeUpdate:
                     Exit Sub
                  
                  Err_BeforeUpdate:
                     MsgBox Err.Number & " " & Err.Description
                     Resume Exit_BeforeUpdate
                  End Sub
                  
                  
                  יהודי טובי תגובה 1 תגובה אחרונה
                  3
                  • OdedDvirO OdedDvir

                    @יהודי-טוב אמר בשדה מחושב באקסס:

                    אם לא קשה לך אני יודה לך תוכל לחלץ לי את השורה שגורמת לכך שלא ישמור.

                    אתה יכול לעשות משהו כזה:

                    Private Sub Form_BeforeUpdate(Cancel As Integer)
                        On Error GoTo Err_BeforeUpdate
                        
                        If Me.Dirty Then Me.Undo
                    
                    Exit_BeforeUpdate:
                       Exit Sub
                    
                    Err_BeforeUpdate:
                       MsgBox Err.Number & " " & Err.Description
                       Resume Exit_BeforeUpdate
                    End Sub
                    
                    

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

                    Dim UserWantsToSave As Boolean
                    
                    Private Sub Form_Current()
                        UserWantsToSave = False
                    End Sub
                    Private Sub cmdSave_Click()
                        UserWantsToSave = True
                        Me.Dirty = False
                    End Sub
                    
                    Private Sub Form_BeforeUpdate(Cancel As Integer)
                        On Error GoTo Err_BeforeUpdate
                        
                        If UserWantsToSave Then Exit Sub
                        If Me.Dirty Then Me.Undo
                    
                    Exit_BeforeUpdate:
                       Exit Sub
                    
                    Err_BeforeUpdate:
                       MsgBox Err.Number & " " & Err.Description
                       Resume Exit_BeforeUpdate
                    End Sub
                    
                    
                    יהודי טובי מנותק
                    יהודי טובי מנותק
                    יהודי טוב
                    כתב ב נערך לאחרונה על ידי
                    #32

                    @OdedDvir אמר בשדה מחושב באקסס:

                    אבל הפתרון היותר אלגנטי הוא להשתמש במשתנה עזר של הטופס שזוכר האם המשתמש רוצה לשמור או לא (ז"א האם הוא לחץ על הכפתור של השמירה)
                    פתח את עורך הקוד של הטופס ותכניס את הקוד הבא (במקום הקוד שלעיל)

                    הוא שומר בכל אופן...

                    OdedDvirO תגובה 1 תגובה אחרונה
                    0
                    • יהודי טובי יהודי טוב

                      @OdedDvir אמר בשדה מחושב באקסס:

                      אבל הפתרון היותר אלגנטי הוא להשתמש במשתנה עזר של הטופס שזוכר האם המשתמש רוצה לשמור או לא (ז"א האם הוא לחץ על הכפתור של השמירה)
                      פתח את עורך הקוד של הטופס ותכניס את הקוד הבא (במקום הקוד שלעיל)

                      הוא שומר בכל אופן...

                      OdedDvirO מנותק
                      OdedDvirO מנותק
                      OdedDvir
                      כתב ב נערך לאחרונה על ידי
                      #33

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

                      תגובה 1 תגובה אחרונה
                      0
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


                      • 1
                      • 2
                      בא תתחבר לדף היומי!
                      • התחברות

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

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