עיגול דקה באקסס

הנושא בפורום 'פורום תוכנות מייקרוסופט אופיס' פורסם ע"י ממוו, ‏11/7/19.

  1. ממוו

    ממוו משתמש חדש

    הצטרף:
    ‏7/3/17
    הודעות:
    28
    תודות :
    0
    נקודות:
    2
    מישהו יודע איך עושים קוד שמעגל את הדקות ל5 דקות באקסס כלומר שאם כתוב לי 7:33 יעגל ל 7:35 וכו'
    אשמח לעזרת הציבור
     
  2. moishy

    moishy משתמש מקצוען

    הצטרף:
    ‏26/12/11
    הודעות:
    1,698
    תודות :
    575
    נקודות:
    124
    עיסוק:
    יועץ נישואין, מדריך חתנים
    מיקום:
    רכסים
    שם הפונקציה היא Round()
     
    ממוו מודה על התגובה.
  3. ממוו

    ממוו משתמש חדש

    הצטרף:
    ‏7/3/17
    הודעות:
    28
    תודות :
    0
    נקודות:
    2
    תודה רבה
    אבל לא הצלחתי להתשמש בו
    זאת אומרת נניח שכתבתי בתוך הפונצקיה שדה שמכילה נתון 22 הוא מציג לי ג"כ את המספר הזה ולא מעגל אותו. אולי צריך עוד משהו אחרי הפסיק. אשמח אם תלמד אותי
    תודה רבה
     
  4. moishy

    moishy משתמש מקצוען

    הצטרף:
    ‏26/12/11
    הודעות:
    1,698
    תודות :
    575
    נקודות:
    124
    עיסוק:
    יועץ נישואין, מדריך חתנים
    מיקום:
    רכסים
    אתה צודק, זה מעט יותר מורכב.
    הרצון הוא רק לעגל את הדקות ולכן צריך לפרק את השדה לגורמים, להפעיל את המניפוציה על הדקות, ולהרכיב מחדש את השדה.
    לשם ההמחשה:
    קוד:
    Public Sub Example()
        'הצהרת משתנים
        Dim YourTime As Date
        Dim lngHours As Long, lngMinutes As Long, lngSeconds As Long
        
        ' משתנה המכיל את השעה אותו יש לעגל
        YourTime = Time
        
        ' פירוק השעה לגורמים
        lngHours = Hour(YourTime)
        lngMinutes = Minute(YourTime)
        lngSeconds = Second(YourTime)
        
        ' הפעלת המניפולציה על הדקות (עיגול ל5 הקרוב)
        lngMinutes = Round(lngMinutes / 5) * 5
        
        ' הרכבת השעה מחדש
        YourTime = Int(YourTime) + TimeSerial(lngHours, lngMinutes, lngSeconds)
        
        ' הצגת השעה החדשה למשתמש
        MsgBox YourTime
    End Sub
     
    ממוו ו-עמיק מודים על התגובה.
  5. ממוו

    ממוו משתמש חדש

    הצטרף:
    ‏7/3/17
    הודעות:
    28
    תודות :
    0
    נקודות:
    2
    תודה רבה עזרת לי מאוד
    אבל מה שנשאר לי זה לעשות תנאי שבמידה והדקות הם 60 יוסיף שעה כדי שלא תהיה שעה 6:60
    ולא הצלחתי להגדיר פונקציה שמוסיפה שעה אחת
    עשיתי כך
    (Hour([שעה]) +1)
    והוא מציג לי את השעה המקורית ללא הוספת שעה
    אשמח לעזרתך
     
  6. moishy

    moishy משתמש מקצוען

    הצטרף:
    ‏26/12/11
    הודעות:
    1,698
    תודות :
    575
    נקודות:
    124
    עיסוק:
    יועץ נישואין, מדריך חתנים
    מיקום:
    רכסים
    כל הקוד הזה ניתן לכתוב בשורה אחת, אבל כתבתי בצורה ארוכה בגלל שכך זה יותר ברור.

    קוד:
    Public Sub Example()
        'הצהרת משתנים
        Dim YourTime As Date
        Dim lngHours As Long, lngMinutes As Long, lngSeconds As Long
        
        ' משתנה המכיל את השעה אותו יש לעגל
        YourTime = Time
        
        ' פירוק השעה לגורמים
        lngHours = Hour(YourTime)
        lngMinutes = Minute(YourTime)
        lngSeconds = Second(YourTime)
        
        ' הפעלת המניפולציה על הדקות (עיגול ל5 הקרוב)
        lngMinutes = Round(lngMinutes / 5) * 5
        
        ' עם העיגול נתן לנו 60 דקות, הגדל השעות ב1 ואיפוס הדקות
        If lngMinutes = 60 Then
            lngMinutes = 0
            lngHours = lngHours + 1
        End If
        
        ' הרכבת השעה מחדש
        YourTime = Int(YourTime) + TimeSerial(lngHours, lngMinutes, lngSeconds)
        
        ' הצגת השעה החדשה למשתמש
        MsgBox YourTime
    End Sub
     
    ממוו ו-miro מודים על התגובה.