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

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

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

עזרה בכתיבת פונקציה (אקסס)

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 3 כותבים 515 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אבי
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלה עם רשימת שעות ודקות
    לדוגמא: 12:35, 14:58, 19:44 וכדומה
    אני רוצה לקבל את טווח הדקות שיש בו את מספר הנתונים הרב ביותר
    או במילים אחרות: מתי ה X דקות הכי עמוסות?

    כל עזרה תתקבל בברכה
    תודה מראש

    פורסם במקור בפורום CODE613 ב15/04/2015 17:25 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • clickoneC מנותק
      clickoneC מנותק
      clickone
      כתב ב נערך לאחרונה על ידי
      #2

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

      דוגמא:

      SELECT Format([HNow],"Short Time") AS Expr1, Count(TblHistory.HNow) AS CountRows
      FROM TblHistory
      GROUP BY Format([HNow],"Short Time");
      

      כמובן תחליף את שמות השדות והטבלה בהתאמה...

      פורסם במקור בפורום CODE613 ב15/04/2015 18:00 (+03:00)

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

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

        @ClickOne

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

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

        פורסם במקור בפורום CODE613 ב15/04/2015 19:13 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          כתב ב נערך לאחרונה על ידי
          #4

          אתה יכול לכוון אותנו יותר?
          לדוגמא. אתה רוצה לדעת בכל טווח?
          8:00-9:30
          8:01-931

          וכו' בדוגמא של 90 דקות.

          זה הכיוון?

          פורסם במקור בפורום CODE613 ב15/04/2015 19:42 (+03:00)

          אין טסט כמו פרודקשן.

          המייל שלי urivpn@gmail.com

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

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

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

            פורסם במקור בפורום CODE613 ב15/04/2015 19:45 (+03:00)

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

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

              @ClickOne

              אתה יכול לכוון אותנו יותר?
              לדוגמא. אתה רוצה לדעת בכל טווח?

              הפונקציה תקבל מספר דקות כל שהוא, לדוגמא 75,
              ותחזיר את השעות במשך היום שבו היו הכי הרבה רשומות
              לדוגמא, בין השעה 07:42 לשעה 08:57 - שזה 75 דקות.

              @ארכיטקט

              אתה צריך לולאה שעוברת על כל רשומה, ובתוכה יוצרת שאילתה שתחזיר את כל הרשומות שאחריה בתנאי שהערך הוא קטן מערך הרשומה הנוכחית + 90, שאילתה זו תיתן לך תוצאה פר רשומה. בסיום אתה יכול לקחת את הרב ביותר ולהחזירו כתוצאת הפונקציה.

              אני חושב שזה הכיוון.

              זה דוגמא לנתונים שבטבלה

              לכידה.PNG
              אם אבקש טווח של 40 דקות התשובה הנכונה תהיה: 11:32-12:51 (4 רשומות)
              אם אבקש טווח של 80 דקות התשובה הנכונה תהיה: 07:06-08:20 (5 רשומות)

              מקווה שעכשיו זה יותר ברור..

              פורסם במקור בפורום CODE613 ב15/04/2015 20:09 (+03:00)

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

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

                פורסם במקור בפורום CODE613 ב15/04/2015 20:39 (+03:00)

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

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

                  תבדוק אם זה עובד:

                  Function GetMaxCountRecordsInTimeRange(minutes As Integer, TableName As String, FieldName As String) As Date
                  Dim rcs As Recordset, rcsResult As Recordset, TempDateValue As Date, TempCountValue As Long, TempFromDate As Date, TempToDate As Date
                  Set rcs = CurrentDb.OpenRecordset("select " & FieldName & " from " & TableName)
                  
                  Do While Not rcs.EOF
                  TempDateValue = rcs.Fields(0)
                  Set rcsResult = CurrentDb.OpenRecordset("select count(" & FieldName & ") as CountRecords , Min(" & FieldName & ") as FromDate, Max(" & FieldName & ") as ToDate from " & TableName & " where " & FieldName & " between  #" & TempDateValue & "# and #" & DateAdd("n", minutes, TempDateValue) & "#")
                  
                  If rcsResult.Fields("CountRecords").Value > TempCountValue Then
                  
                  TempCountValue = rcsResult.Fields("CountRecords").Value
                  
                  TempFromDate = rcsResult.Fields("FromDate").Value
                  TempToDate = rcsResult.Fields("ToDate").Value
                  
                  End If
                  
                  rcs.MoveNext
                  
                  Loop
                  MsgBox TempFromDate & " - " & TempToDate & " " & TempCountValue & " øùåîåú"
                  
                  GetMaxCountRecordsInTimeRange = TempFromDate
                  End Function
                  

                  פורסם במקור בפורום CODE613 ב15/04/2015 21:32 (+03:00)

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

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

                    פשוט אין מילים
                    תודה רבה רבה!!!

                    פורסם במקור בפורום CODE613 ב15/04/2015 22:46 (+03:00)

                    תגובה 1 תגובה אחרונה
                    0

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

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

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