הדפסת מסמך וורד מתוך אקסס

ariel10

New member
הדפסת מסמך וורד מתוך אקסס

אני מצליח לפתוח מסמך וורד מאקסס ע"י SHELL איך אני גורם למסמך לא להיפתח אלא להדפיס אותו ומיד לחזור לאקסס?
 

חיים_K

New member
תשובה

לעבוד עם Shell נראה לי כמו פתרון לא כל כך טוב לבעיה. פתרון יותר טוב לדעתי הוא לעבוד עם אובייקטים של word בתוך אקסס. זה נותן לך לא רק לפתוח מסמכים ולהדפיס, אלא גם לערוך מסמכים מתוך אקסס, תוך שימוש ב VBA של Word. הקוד יראה בערך ככה:
Public Function printWordDoc() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Set wrdDoc = wrdApp.Documents.Open("......") wrdDoc.PrintOut wrdApp.Quit Set wrdApp = Nothing Set wrdDoc = Nothing End Function​
צריך להגדיר קודם הפניה (Reference) ל Word, או לחילופין לעבוד עם CreateObject
 

גרי רשף

New member
היכן טעיתי?../images/Emo22.gif

הוספתי את הקוד למודול (Access 2000) עם הפניה לקובץ Word קיים, סימנתי את
Tools => Preferences => Microsoft Word 9.0 Object Library​
הקוד עבר קומפילציה בהצלחה, אבל כשהרצתי קיבלתי הודעת שגיאה
Run Time Error ´91´: Object variable or With block variable not set​
המתייחסת לשורת הקוד
Set wrdDoc = wrdApp.Documents.Open("C:\Try001.doc")​
מה חסר לי?
 

חיים_K

New member
פאק שלי ../images/Emo4.gif

צריך להיות להוסיף NEW :
dim wrdApp as new word.application​
כמו כן, כדי שאפליקציית ה Word תראה ותקבל פוקוס צריך להוסיף:
wrdApp.visible = true wrdApp.activate​
 

ariel10

New member
וורד מאקסס

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

חיים_K

New member
אל תסגור את הוורד

תעלים אותו עם Visible = false, או שתוריד אותו עם Windowstate = vbminimized, ובשלב מאוחר יותר (ביציאה מהתוכנית, או בטיימר) תהרוג אותו לגמרי. אפשר גם לתפוס ארועים של וורד בתוך אקסס (הגדרת האובייקטים withevents) אבל זה כבר מתחיל להיות טריקי.
 
למעלה