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