-
יש לי קובץ אקסס שבו טבלא עם כ250 אנשים שמסווגים באופנים שונים.
למשל:(כאן רואים שת.ז. 442354360 גם גר באלעד, גם למד גמרא גם משנה וגם למד בבין הזמנים).
אני רוצה ליצור טבלא ששם יהיה רשום את הת.ז. של הבן אדם ואז סכום של כסף שמגיע לו לפי קרטריונים קבועים. שהם
המשבצת הראשונה שמסומנת זה 100 ש"ח וכל משבצת נוספת זה 50 ש"ח אבל אם אחת המשבצות היא לומד בבין הזמנים אז תוסיף לסך הכללי עוד 100 ש"ח.למשל בדוגמא כאן :
הוא גר באלעד זה פרט ראשון אז יש לו 100 שקל.
הוא לומד גמרא יש לו כבר 150
הוא לומד משנה יש לו כבר 200
והוא גם לומד בבין הזמנים יש לו 300
ואז בטבלא השניה יירשם הת.ז. ועמודה ליד את המספר 300.ניסתי לעשות לולאה שרצה על הכל ובודקת רק שלא הצלחתי לדעת האם הרשומה מסומנת או לא (איזה תנאי לעשות ?
if "אלעד" != null
?
אשמח לכל עזרה,
אם לא היה ברור אשמח אם תשאלו ואני יסביר את עצמי יותר טוב. -
@צבי-ש לא ציינת כיצד עשית את הלולאה.
הנה דוגמא לקוד אפשרי, שסורק את הטבלהPeople
.
עבור כל רשומה, הוא בודק השדהאלעד
, ואם הוא מסומן, הוא מוסיף 100 לתוצאה.
באופן דומה הוא סורק את הערך בשדהגמרא
ומגדיל את התוצאה ב-50 אם הוא מסומן.
לבסוף הוא שומר את התוצאה בשדהתוצאה
.Public Sub ScanRecords() Dim rs As DAO.Recordset Dim amount As Integer Set rs = CurrentDb.OpenRecordset("People", dbOpenDynaset, dbSeeChanges) With rs While Not .EOF amount = 0 If Nz(.Fields("אלעד").Value, False) Then amount = amount + 100 End If If Nz(.Fields("גמרא").Value, False) Then amount = amount + 50 End If ' Save the value in the record .Edit .Fields("תוצאה").Value = amount .Update .MoveNext Wend .Close End With End Sub
אמנם זה לא בדיוק מה שביקשת, כי התוצאה נשמרת בטבלה המקורית. אבל תן לחכם ויחכם עוד...
-
@OdedDvir אמר בלולאה באקסס|עם בדיקה האם ערך מסויים מסומן בתיבת בחירה.:
עבור כל רשומה, הוא בודק השדה אלעד, ואם הוא מסומן, הוא מוסיף 100 לתוצאה.
באופן דומה הוא סורק את הערך בשדה גמרא ומגדיל את התוצאה ב-50 אם הוא מסומן.תודה!
אבל זה קצת צריך שינוי.
כי אני לא יודע האם הוא מאלעד, ירושלים , או ביתר...
יש לי 7 רשומות שכולם אותו דבר כלומר הוא יכול להיות מסומן בכולם\ חלקם ויכול לא להיות מסומן בכלל וחוץ מזה יש לי ערך שמיני שהוא מוסיף 100.כלומר אני לא יודע מה הערך הראשון שאותו להגדיר כ100 ואת השאר כ50 . אני רוצה שעל הנתון הראשון יביא 100 , השאר 50, ועוד מישהו שמוסיף 100.
-
@צבי-ש הבנתי. אז תסרוק את כל השדות הרלוונטים, למעט השדה שמוסיף 100 והוא לא הראשון (להלן: השדה המיוחד) באופן דומה למש"כ לעיל, ואם השדה מסומן, תגדיל את התוצאה ב-1. לבסוף, תבדוק את התוצאה. אם היא לא אפס, תחשב את הסכום על ידי הנוסחא:
amount = 50 + amount * 50
לגבי השדה "המיוחד" שמוסיף 100, תבדוק אותו בסוף ואם הוא מסומן - תוסיף 100.
-
@צבי-ש אמר בלולאה באקסס|עם בדיקה האם ערך מסויים מסומן בתיבת בחירה.:
ואיך אם הוא לא מסומן?
If Not Nz(.Fields("גמרא").Value, False) Then
או שאפשר לבדוק את שניהם:
If Nz(.Fields("גמרא").Value, False) Then ' Do something if true Else ' Do something else if false End If
-