דחיסה של DataBase

yaron881

New member
דחיסה של DataBase

יש לי אפליקציה ב-Access המופרדת לקוד ו-Data שאלתי היא: איך אפשר לבצע דחיסה של ה-Database שמכיל את ה-Data המקושר לאפליקציה שלי מתוך הקוד , למשל בעת סגירת האפליקציה ?
 

גרי רשף

New member
תיקון ודחיסה

1. צור ב-DeskTop קיצור דרך עם שורת ה-Target הבאה: C:\Program Files\Microsoft Office\Office\MSACCESS.EXE C:\My Documents\Tohnit.mdb/repair/compact את מה שכתוב בשורה הראשונה שים במרכאות (" "), תו רווח והשורה השניה ללא מרכאות. כמובן שיש להתאים למיקום קובץ ה-MsAccess.exe והתוכנית שכתבת. ביצוע Double Click יגרום לביצוע תיקון ודחיסה, וסגירת ה-Access. 2. לא בדקתי, אבל יתכן וניתן להפעיל זאת מתוך התוכנית בעת הסגירה או לאחר שמתבצע ניתוק מקובץ הנתונים שכן לא ניתן לדחוס אותו כל עוד מישהו מקושר אליו. ההפעלה מתוך הישום על ידי פקודת Docmd.Shell .
 

אלון_פ

New member
דחיסה של קובץ הנתונים

ניתן להשתמש בקוד הבא
strSource = "c:\proj\DataFileName.mdb" strTarget = "c:\proj\TempFileName.mdb" kill strTarget DBEngine.CompactDatabase strSource , strTarget Kill strSource Name strTarget As strSource​
אלון
 

yaron881

New member
זה לא פועל משום

שכאשר בסיס הנתונים מקושר לאפליקציה ממנה אני רוצה לדחוס אני מקבל הודעה שבסיס הנתונים תפוס כרגע ע"י משתמש (שזה אני) אולי ניתן לבצע זאת ע"י ניתוק תחילה של בסיס הנתונים המקושר ואז ניתן לדחוס. אם אתה יודע כיצד לנתק בסיס נתונים מקושר אודה לך אם תראה לי.
 

אלון_פ

New member
ניתוק

בהנחה שבבסיס הנתונים המקושר יש רק טבלאות, יש לוודא שאין טבלה הנמצאת בשימוש, אצלך וכן אצל כל המשתמשים האחרים: א. וודא כי רק אתה מפעיל את האפליקציה. ב. סגור את כל הטפסים המכילים מידע מטבלאות מקושרות. ג. וודא כי בסיס הנתונים עצמו אינו פתוח ב-Session מקביל הקישורים עצמם (כל עוד הטבלה סגורה) אינם נועלים את הטבלאות ולכן אינם מפריעים לפעולת הדחיסה. אלון
 

mirig

New member
בעיה דומה

היי אלון, נתקלתי בבעיה דומה לפני זמן מה ולפי מה שיעצו לי היה 1. לפתוח קובץ אקסס חדש שממנו מרצים את המערכת שלך (שיהיה שם קיצור דרך למערכת שלך) 2. מתוך המערכת החדשה הזאת לבצע את הפעולות על הDB כל עוד הוא סגור וזה יראה כמו מסך פתיחה נוסף למערכת. אם יש לך או למשהו אחר רעיון יותר טוב אשמח לשמוע מירי
 
למעלה