אקסס | סינון ב SQL עם ערך מתיבת טקטס שלא הוגדר
-
יש לי איזה קובץ באקסס שעובד היטב בגרסת 2010 ו 365, משום מה במחשב אחר עם אופיס 2019, יש לו באג מוזר:
שהיות ואני מפעיל שאילתה ב VBA עם סינון על פי הערך של הרשומה הנוכחית בטופס משנה הפתוח.
והיות וכרגע זה לא מוגדר עדיין, (מופיע: #Name?), זה מוציא את כל הרשומות בטבלה (מאות אלפים) ומבצע על זה מוניפלציות, וזה תוקע את המחשב.
אני מסנן ככה:(A.ID)= [Forms]![SP1].[SUB]![mID]
אז אצלי במחשב ברגע ש [Forms]![SP1].[SUB]![mID] לא מוגדר, אז הוא לא מחזיר כלום.
אבל אצלו משום מה זה מחזיר הכל.מה יכול להיות הסיבה לכך?
וכן מה הערך של #Name? ? זה מחזיר אמת על יותר מ 0.
תודה רבה!
-
@clickone אמר באקסס | סינון ב SQL עם ערך מתיבת טקטס שלא הוגדר:
@WWW תנסה להשתמש עם NZ בערך ברירת מחדל לא חוקי (לוגמא בID תעשה על זה -1 שזה ערך שלא יכול להיות)
אני רואה שמדובר במקור רשומה לא מוגדר.
דהיינו הפקד מוגדר עם הערך ID, אבל אין מקור לטופס, הוא מקבל אותו ע"י קוד VBA, והוא עדיין לא קיבל אותו. -
@WWW אם זה בקוד, למה שלא תבדוק אם יש שגיאה וותנהל לפי זה
לדוגמא ככהon error resume next ' some code ...... if err<>0 then ' code if error end if '---------------------------- 'or '---------------------------- if err=1234 then ' replace error code end if
-
@clickone אמר באקסס | סינון ב SQL עם ערך מתיבת טקטס שלא הוגדר:
@WWW אם זה בקוד, למה שלא תבדוק אם יש שגיאה וותנהל לפי זה
נראה לענ"ד שלא הבנת את הבעיה שלו נכון..
בגרסאות מוקדמות, אם יש שאילתה שמסוננת על שדה שאינו מאוגד למקור בטופס - שאז מתקבל הערך Name בשדה.
הוא מחזיר 0 שורות.
ב2019 הוא מחזיר את כל השאילתה.
ולא מתקבל שגיאה... -
@WWW אמר באקסס | סינון ב SQL עם ערך מתיבת טקטס שלא הוגדר:
If IsNumeric([Forms]![SP1].[SUB]![mID]) Then
אצלי זה עובד.
השאלה מה יהיה ב 2019.קשה להגיד שיתקבל FALSE..
@WWW אמר באקסס | סינון ב SQL עם ערך מתיבת טקטס שלא הוגדר:
כשניסיתי את זה על 2019, זה לא הציג שגיאות.
זה מה שאמרתי. שהוא לא מציג שגיאות רק ממשיך כאילו השאילתה אינה מסוננת.