יצירת הגדרות לכל משתמש באקסס VBA
-
יש לי תוכנה באקסס עם טבלה בשם Settings וגם טבלה בשם SettingsForAll.
כמובן ההבדל הוא שיש הגדרות שהם לכל המשתמשים יחד ויש הגדרות שכל משתמש מגדיר לעצמו.
הטבלה בשם SettingsForAll יושבת ב BackEnd והטבלה Settings יושבת ב FrontEnd.בשביל שהמשתמשים יוכלו לשחק בהגדרות יצרתי Form בשם Settings שנגש לטבלאות עם DlookUp ושומר את ההגדרות ע"י DoCmd.RunSQL עבור כל הגדרה.
הבעיה כזאת:
ברגע שאני שולח עדכון תוכנה ההגרות שיושבות ב FE משתנות לפי מה שנמצא אצלי.
איך אפשר לעשות שההגדרות שלהם ישמרו.אפשרות 1. לייצא את ההגדרות החוצה לקובץ INI בכל שינוי של הגדרות, ולקרוא ממנו בכל פתיחה של התוכנה.
אפשרות 2. לשמור את כל ההגדרות רק ב INI ולקרוא בכל פעם שפונציה נדרשת לנתון של ההגדרות.הבעיה באפשרות השניה היא במקרה שכל מחשב שנמצא עליו ה FE זה יחייב גם INI, וגם זה כל פעם קריאה מחדש של ההגדרה מקובץ טקסט ולא מטבלה.
-
@yits יש לך מערכת משתמשים? עם כניסה שכל אחד נכנס עם שם משתמש וסיסמא?
אתה צריך בעצם משהו כזה:- שתי הטבלאות נמצאות בפרונט (או כטבלה מקושרת אם אתה משתמש בזה)
- בכל הגדרה אתה בודק אם היא נמצאת על המשתמש הנוכחי, אם כן, אתה שולף משם. אם לא, אתה שולף מההגדרות הכלליות.
- בשביל שהמשתמש הנוכחי יהיה זמין לך לכל אורך חיי התוכנית בVBA / בתוכנה, אתה יכול לעשות משתנה גלובלי.
ולהכניס בתוכו את הID של המשתמש.
אח"כ לעשות פונקצייה גלובלית שתחזיר לך בכל מצב את הID של המשתמש הנוכחי.
אתה יכול להשתמש בפונקצייה הזו גם בשאליתו במשפטי WHARE וגם בINSERT.
אני מקווה שהבנתי נכון מה התכוונת ומה אתה מצפה שיהיה.
בכל מקרה אם תעלה קובץ קטנטן, אוכל להעלות דוגמא חוזרת. -
@yits לא הבנתי למה זה לא יכול להיות כטבלה מקושרת, ולמה זה צריך להגיע ממך?
כי יש לפעמים הגדרות חדשות שאתה מוסיף? ואז הם לא יהיו קיימים בטבלה הקודמת?
אם כן, זה יחסית פשוט.
תעשה טבלת הגדרות פנימית שלך. רשימת הדרות וברירת מחדל נקרא לזה,
ובכל עלייה של התוכנה, תריץ SQL פשוט שמוסיף לטבלת ההגדרות של המשתמשים את ההגדרות שלא קיימות אצלם.
ובכל יצירת משתמש חדש, אתה מוסיף את כלל ההגדרות ברירת המחדל שלך אליו.אם תעלה קובץ דוגמא של 2 הטבלאות, אני אוכל להעלות לך קוד SQL קצרצר שעושה את העבודה
-
ואיפה ישמרו ההגדרות של המשתמש עצמו?
אני ינסה להסביר קצת באריכות.
יש לי דטה בייס מוגן עם סיסמה (ואותו קשה לפרוץ accdb).
ויש לי את ה FE.אם מישהו יפתח או ינסה לייבא מה FE לא יהיה לו טבלאות ולא טבלאות מקושרות.
ואם הוא ינסה לפתוח את ה FE רגיל הוא יבקש ממנו שם משתמש וסיסמה, ויהיה לו גישה לנתונים אבל לא לייצא אותם החוצה אני מבצע נעילות מהסוג הזה:ChangeProperty "StartupShowDBWindow", dbBoolean, False ChangeProperty "StartupShowStatusBar", dbBoolean, False ChangeProperty "AllowBuiltinToolbars", dbBoolean, False ChangeProperty "AllowFullMenus", dbBoolean, False ChangeProperty "AllowBreakIntoCode", dbBoolean, False ChangeProperty "AllowSpecialKeys", dbBoolean, False ChangeProperty "AllowBypassKey", dbBoolean, False ChangeProperty "AllowShortcutMenus", dbBoolean, False
ולי יש צירוף מקשים כדי לשחרר את הנעילה.
אני בשביל חיבור מחדש צריך טבלה של מיקום קבצים וטבלה של רשימת טבלאות עם הדטה בייס שלהם כדי לייצר קישור ביניהם.
חוץ מזה אני מאחסן עוד כל מיני הגדרות של ברירת מחדל בכל מיני טפסים כדי שכל משתמש יגדיר לעצמו.אני מבין מדבריך שאתה אומר לעשות הגדרות של ברירת מחדל וטבלה להגדרות משתמש
השאלה היא היכן לאחסן את הגדרות משתמש הרי ה FE אני משחרר כל פעם גירסה חדשה?