טיפול בשגיאה VBA אקסס
-
צהריים טובים.
אני רוצה לכתוב קוד באקסס שאם מתרחשת שגיאה במהלך הריצה הוא יקפיץ הודעה עם פירוט השגיאה והשורה שבה התרחשה השגיאה.
את מספר השגיאה אני מוצא פשוט עם Err.Number, ואת התיאור עם Err.Description.
אבל אני רוצה שהוא יציג לי את מה שכתוב בשורה שבה הוא נתקע. האם יש דרך לעשות את זה?
את מספר השגיאה הבנתי שאפשר עם פונקציית Erl ולמספר את השורות בקוד, אבל אני רוצה שהוא גם יציג לי את כל השורה.
תודה רבה! -
https://www.everythingaccess.com/vbwatchdog.asp
נדמה לי שבגירסה החינמית יש בסך הכל הודעה אחת כשפותחים את הקובץ וזהו (אלא אם כן שודרג לאחרונה) -
מה שכרגע עשיתי זה אחרי שאני מוסיף מספור שורות בשביל הפונקציה Erl כתבתי ככה:
ErrStr = VBE.ActiveCodePane.CodeModule.Lines(1, VBE.ActiveCodePane.CodeModule.CountOfLines) ErrStr = Left(Mid(ErrStr, InStr(ErrStr, Erl & " ")), InStr(Mid(ErrStr, InStr(ErrStr, Erl & " ")), vbCrLf)) Debug.Print "Error number: " & Err.Number & vbCrLf & "Description: " & Err.Description & vbCrLf & "Line: " & ErrStr
כך שאם המספור שורה הוא 10 לדוג', אז הוא מחפש איפה כתוב "10 " ומביא את כל השורה. הבעיה היא שאם זה כתוב בעוד מקום לא בטוח שהקוד יחזיר את השורה הנכונה.
אבל גם אם כן, לדעתי נראה ברור שזה קוד קצת 'עקום'... לכאו' אם כשיש באג וכשלוחצים על Debug הוא מדגיש את השורה הבעייתית בצהוב, זה אומר שהשורה רשומה לו איפשהו, השאלה היא איפה והאם אפשר לגשת לזה?
תודה על כל הערה/הארה.