אקסס | RecordCount מחזיר ערך לא נכון
-
אני חושב שזה בגלל שבVBA כל משפט IF בודק את כל התנאים שב-AND יחד, גם אם הראשון FALSE.
תנסה להפריד את התנאים, ולבדוק אחד אחד:
If RS.EOF then
result =0
else
RS.Movelast
result = RS.recordCount
end if@OdedDvir גם כשאני כותב RS.Movelast בלי IF, זה לא עוזר.
עכשיו הטבלה ריקה לגמרי
וזה מציג לי 75...זה כנראה בגלל שאני מדביק כל הזמן חומר, ויש שגיאות הדבקה שמושמטות.
כנראה יש לו בעייה עם הרענון.אני מאמין שדחוס ותקן יפתור את הבעיה.
אבל זה קובץ ענק אין לי זמן לזה
-
יש לי רעיון:
אם אתה צריך רק את מספר הרשומות, אולי DCount יעזור?
עוד רעיון
אולי תריץ שאילתת יצירת טבלה, ותכניס רק עמודה אחת לתוכה (אם אתה צריך רק את מספר הרשומות), ותבדוק כמה שורות יש בה
SELECT [id] INTO [NewTable] FROM [TableName]
ותבדוק כמה רשומות יש ב-NewTable -
עוד כיוון:
איך את פותח את ה-RS? מה פקודת OpenRecordset?
תנסה להוסיף את הדגל dbReadOnly או dbOpenSnapshot -
@OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:
dbOpenSnapshot
עזר!
עדכון:
לא עזר, כעת זה מציג לי על 7000 רשומות 1. -
@OdedDvir אמר באקסס | RecordCount מחזיר ערך לא נכון:
או OpenRecordset("A", dbPessimistic, dbReadOnly)
תנסה OpenRecordset("A", dbOpenSnapshot, dbReadOnly)כנ"ל מחזיר 1.
-
@WWW וואו איזה תיסכול
ניסית ליצור טבלת עזר ולספור את הרשומות שם (כמו שהצעתי למעלה)?
או אולי במקום שם הטבלה "A" תכניס שאילתא (זה יוצר עותק של הטבלה)
set RS = currentdb.OpenRecordset("SELECT id FROM A", dbOpenSnapshot, dbReadOnly)