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

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

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

אקסס | RecordCount מחזיר ערך לא נכון

מתוזמן נעוץ נעול הועבר תכנות
19 פוסטים 3 כותבים 385 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • WWWW מנותק
    WWWW מנותק
    WWW
    כתב ב נערך לאחרונה על ידי WWW
    #1

    כבר קרה לי כמה פעמים שאקסס משתגע ומוסיף או מחסיר כמה רשומות ממספר הרשומות בגישה דרך VBA:

    RS.RecordCount
    

    לא עוזר להוסיף לפני כן:

    If RS.EOF And RS.BOF Then RS.MoveLast
    

    כי כשהטבלה ריקה זה פשוט מחזיר שגיאה שהרשומה לא קיימת.
    וזה מחזיר RecordCount של 23.

    במקרה אחר, שזה הציג פחות ממה שיש באמת, אז לאחר מחיקת כל הרשומות, זה הציג לי RecordCount: -3 🙂

    מה עושים?

    בדקתי ב 2 גרסאות, 2010 ו 365.

    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

      כנראה שהטופס עוד לא סיים לטעון את כל ה RS
      תנסה לזוז קודם לרשומה האחרונה ואז לאחזר את הערך של RecordCount
      if rs.eof then
      result = 0
      else
      rs.MoveLast
      result = rs.RecordCount

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

        @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

        לא עוזר להוסיף לפני כן:
        If RS.EOF And RS.BOF Then RS.MoveLast

        כי כשהטבלה ריקה זה פשוט מחזיר שגיאה שהרשומה לא קיימת.
        וזה מחזיר RecordCount של 23.

        צריך להיות IF NOT

        @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

        במקרה אחר, שזה הציג פחות ממה שיש באמת, אז לאחר מחיקת כל הרשומות, זה הציג לי RecordCount: -3

        כמה הוא החסיר לפני שמחקת את כל הרשומות,
        אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

        WWWW 2 תגובות תגובה אחרונה
        0
        • מלאמ מלא

          @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

          לא עוזר להוסיף לפני כן:
          If RS.EOF And RS.BOF Then RS.MoveLast

          כי כשהטבלה ריקה זה פשוט מחזיר שגיאה שהרשומה לא קיימת.
          וזה מחזיר RecordCount של 23.

          צריך להיות IF NOT

          @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

          במקרה אחר, שזה הציג פחות ממה שיש באמת, אז לאחר מחיקת כל הרשומות, זה הציג לי RecordCount: -3

          כמה הוא החסיר לפני שמחקת את כל הרשומות,
          אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

          WWWW מנותק
          WWWW מנותק
          WWW
          כתב ב נערך לאחרונה על ידי
          #4

          @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

          אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

          מה הכוונה?

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

          מלאמ תגובה 1 תגובה אחרונה
          0
          • מלאמ מלא

            @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

            לא עוזר להוסיף לפני כן:
            If RS.EOF And RS.BOF Then RS.MoveLast

            כי כשהטבלה ריקה זה פשוט מחזיר שגיאה שהרשומה לא קיימת.
            וזה מחזיר RecordCount של 23.

            צריך להיות IF NOT

            @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

            במקרה אחר, שזה הציג פחות ממה שיש באמת, אז לאחר מחיקת כל הרשומות, זה הציג לי RecordCount: -3

            כמה הוא החסיר לפני שמחקת את כל הרשומות,
            אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

            WWWW מנותק
            WWWW מנותק
            WWW
            כתב ב נערך לאחרונה על ידי WWW
            #5

            @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

            צריך להיות IF NOT

            מצאתי את זה ברשת, מעניין.
            בכל אופן זה לא עזר, גם בלי IF.

            WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

            תגובה 1 תגובה אחרונה
            0
            • WWWW WWW

              @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

              אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

              מה הכוונה?

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

              @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

              @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

              אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

              מה הכוונה?

              התכוונתי שזה דבר מוזר שהוא יחזיר -3 על טבלה ריקה.
              ואם תמיד הוא החזר - 3 לפעמים יש איזה שורה שמחסירה 3

              כאן בסעיף 3 הם כותבים שהא מחזיר 100% אמת...

              WWWW תגובה 1 תגובה אחרונה
              0
              • מלאמ מלא

                @WWW אמר באקסס | RecordCount מחזיר ערך לא נכון:

                @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

                אם הוא החסיר 3 ייתכן שיש איזה שורה מפוספסת שמחסירה 3...

                מה הכוונה?

                התכוונתי שזה דבר מוזר שהוא יחזיר -3 על טבלה ריקה.
                ואם תמיד הוא החזר - 3 לפעמים יש איזה שורה שמחסירה 3

                כאן בסעיף 3 הם כותבים שהא מחזיר 100% אמת...

                WWWW מנותק
                WWWW מנותק
                WWW
                כתב ב נערך לאחרונה על ידי
                #7

                @מלא אמר באקסס | RecordCount מחזיר ערך לא נכון:

                התכוונתי שזה דבר מוזר שהוא יחזיר -3 על טבלה ריקה.
                ואם תמיד הוא החזר - 3 לפעמים יש איזה שורה שמחסירה 3

                ברור שזה מוזר.

                הוא החזיר נראה לי כל הזמן 3 פחות, ואז ב 0 הוא תרגם ל -3 ...

                WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

                  אני חושב שזה בגלל שבVBA כל משפט IF בודק את כל התנאים שב-AND יחד, גם אם הראשון FALSE.
                  תנסה להפריד את התנאים, ולבדוק אחד אחד:
                  If RS.EOF then
                  result =0
                  else
                  RS.Movelast
                  result = RS.recordCount
                  end if

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

                    אני חושב שזה בגלל שבVBA כל משפט IF בודק את כל התנאים שב-AND יחד, גם אם הראשון FALSE.
                    תנסה להפריד את התנאים, ולבדוק אחד אחד:
                    If RS.EOF then
                    result =0
                    else
                    RS.Movelast
                    result = RS.recordCount
                    end if

                    WWWW מנותק
                    WWWW מנותק
                    WWW
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @OdedDvir גם כשאני כותב RS.Movelast בלי IF, זה לא עוזר.

                    עכשיו הטבלה ריקה לגמרי
                    וזה מציג לי 75...

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

                    אני מאמין שדחוס ותקן יפתור את הבעיה.

                    אבל זה קובץ ענק אין לי זמן לזה 😞

                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

                      יש לי רעיון:
                      אם אתה צריך רק את מספר הרשומות, אולי DCount יעזור?
                      עוד רעיון
                      אולי תריץ שאילתת יצירת טבלה, ותכניס רק עמודה אחת לתוכה (אם אתה צריך רק את מספר הרשומות), ותבדוק כמה שורות יש בה
                      SELECT [id] INTO [NewTable] FROM [TableName]
                      ותבדוק כמה רשומות יש ב-NewTable

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

                        עוד כיוון:
                        איך את פותח את ה-RS? מה פקודת OpenRecordset?
                        תנסה להוסיף את הדגל dbReadOnly או dbOpenSnapshot

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

                          עוד כיוון:
                          איך את פותח את ה-RS? מה פקודת OpenRecordset?
                          תנסה להוסיף את הדגל dbReadOnly או dbOpenSnapshot

                          WWWW מנותק
                          WWWW מנותק
                          WWW
                          כתב ב נערך לאחרונה על ידי WWW
                          #12

                          @OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:

                          dbOpenSnapshot

                          עזר!
                          עדכון:
                          לא עזר, כעת זה מציג לי על 7000 רשומות 1.

                          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                          OdedDvirO תגובה 1 תגובה אחרונה
                          0
                          • WWWW WWW

                            @OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:

                            dbOpenSnapshot

                            עזר!
                            עדכון:
                            לא עזר, כעת זה מציג לי על 7000 רשומות 1.

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

                            @WWW מה פקודת OpenRecordset שאתה משתמש בה?

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

                              @WWW מה פקודת OpenRecordset שאתה משתמש בה?

                              WWWW מנותק
                              WWWW מנותק
                              WWW
                              כתב ב נערך לאחרונה על ידי
                              #14

                              @OdedDvir

                              CurrentDb.OpenRecordset("A")
                              

                              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

                                תנסה OpenRecordset("A", dbOpenSnapshot, dbReadOnly)

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

                                  או OpenRecordset("A", dbPessimistic, dbReadOnly)

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

                                    או OpenRecordset("A", dbPessimistic, dbReadOnly)

                                    WWWW מנותק
                                    WWWW מנותק
                                    WWW
                                    כתב ב נערך לאחרונה על ידי
                                    #17

                                    @OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:

                                    או OpenRecordset("A", dbPessimistic, dbReadOnly)
                                    תנסה OpenRecordset("A", dbOpenSnapshot, dbReadOnly)

                                    כנ"ל מחזיר 1.

                                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                    OdedDvirO תגובה 1 תגובה אחרונה
                                    0
                                    • WWWW WWW

                                      @OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:

                                      או OpenRecordset("A", dbPessimistic, dbReadOnly)
                                      תנסה OpenRecordset("A", dbOpenSnapshot, dbReadOnly)

                                      כנ"ל מחזיר 1.

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

                                      @WWW וואו איזה תיסכול
                                      ניסית ליצור טבלת עזר ולספור את הרשומות שם (כמו שהצעתי למעלה)?
                                      או אולי במקום שם הטבלה "A" תכניס שאילתא (זה יוצר עותק של הטבלה)
                                      set RS = currentdb.OpenRecordset("SELECT id FROM A", dbOpenSnapshot, dbReadOnly)

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

                                        @WWW וואו איזה תיסכול
                                        ניסית ליצור טבלת עזר ולספור את הרשומות שם (כמו שהצעתי למעלה)?
                                        או אולי במקום שם הטבלה "A" תכניס שאילתא (זה יוצר עותק של הטבלה)
                                        set RS = currentdb.OpenRecordset("SELECT id FROM A", dbOpenSnapshot, dbReadOnly)

                                        WWWW מנותק
                                        WWWW מנותק
                                        WWW
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        @OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:

                                        set RS = currentdb.OpenRecordset("SELECT id FROM A", dbOpenSnapshot, dbReadOnly)

                                        ניסיתי כבר בהתחלה.
                                        לא עזר.

                                        בכל אופן אני הסתדרתי, הפרויקט הזה שהייתי צריך אותו כבר סיימתי ב"ה.

                                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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


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

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

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