המרת אקסס

המרת אקסס

שלום לכולם אחרי שנים שלא נגעתי באקסס, אני צריך להסב מערכת שכתבתי בשנת 48, באקסס 97, לאקסס חדש כלשהו. מה שמותקן אצלי כיום זה 2007. אני מנסה לפתוח את קובץ התוכנית, והוא מציע לי באדיבות להסב אותו לגרסה החדשה. אני מסכים, ואז הוא מודיע לי שכדי להסב, הוא צריך למחוק את כל הקוד. הוא "גילה" שם פרויקט vba, ועליו למחוק את כל הקוד לפני שהוא מתחיל בהסבה. מה קורה שם, הם נפלו על השכל? אם הוא מוחק לי את הקוד, מה ישאר? תמונות המסכים? אנא תנו עצה מניסיונכם. אולי כדאי להסב לגרסה הקודמת, נדמה לי שזה 2003 ? תודה.
 
אז ככה...

מניסיון המעבר מ- גרסה 97 ל-2007 לא פשוט בכלל בניגוד לאמור בדף הבא של מיקרוסופט. ראשית אני מאוד מקווה שלא כתבת את ה- משתנים/שמות טבלאות/שמות מסכים וכו' בשפה העברית. במידה ולא, אני ממליץ לך לעבור לתבנית 2000 ולראות איך הפרוייקט מתנהג ברגע שתצליח לייצב את הפרוייקט ב-2000 המעבר ל-2007 אמור לעבור יותר חלק. לא רוצה לייאש אותך אבל מאוד יכול להיות שלא תצליח להעביר את הפרוייקט מ-97 "כמו שהוא" ל-2007. אגב, במידה ולא מדובר בפרוייקט מורכב מידיי, במקומך לא הייתי פוסל את האפשרות לכתוב אותו מחדש ב-2007 בהצלחה!
 
לכתוב מחדש? OMG

כן מסובך ולכתוב מחדש... לא. בינתיים יש קצת התקדמות, וגיליתי שכדי להעביר לגרסה מתקדמת יותר (גם התקנתי 2003 כדי להפחית את הטראומה שלו, אולי זה יעזור) צריך לקמפל את כל הקוד ללא שגיאות ב 97, ורק לאחר מכן להעביר. נשמע הגיוני. אני מנסה לקמפל - complie all modules - ומקבל שגיאות. הרבה. רובן על דברים שעובדים יפה, כמו זה:
DoCmd.OpenForm "Orders",,, "Orderid=" & cstr(orderid)​
הטענה היא ש orderid לא מוגדר, not defined . נכון שהוא לא מוגדר, אבל הוא אחד השדות של הטופס, ולכן זה עובד יפה. מה לעשות כדי שזה יתקמפל ולא יוציא שגיאה? אולי צריך איזו קידומת? ניסיתי Me.orderid , לא הלך. אם יש רעיונות - אנא. תודה.
 
אמא, אבא, אקסס!

מצאתי באיזה מקום את הסינטקס: Me.Parent.Orderid ולמרבה הפלא זה משתיק את השגיאה. האם זה הטריק? מה המשמעות, ומה קרה ל me הישן והטוב?
 

or25950

New member
נתקלתי בכמה מקומות

לא באפליקציה שלי שבהסבה מ-97 ל-2002 הוא צועק על הגדרת שדה me.field ומבקש me!field
 
למעלה