VBA. איך לפתוח ולעבוד עם WORD על ידי ACCESS
-
איך לפתוח WORD ולעבוד עליו על ידי ACCESS?
הצורך הוא -
אם הוא פתוח: להצביע על הגירסה הפתוחה שלו ולהעביר את המיקוד (FOCUS) אליו.
אם הוא סגור: לפתוח אותו ולהצביע ולהתמקד עליו.אח"כ לערוך אותו וכו' זה כבר פשוט.
(יש לי כמה נסיונות... אבל קודם אני רוצה לשמוע אם יש למישהו פתרון פשוט יותר שיחסוך את חיפוש הבאגים למיניהם).
-
@Y-Excel-Access re רק קוד לפתוח אותו או גם לערוך אותו באקסס (וא"כ מה זה כולל עוד)
ככה?
Sub automateword() Set wordapp = CreateObject("word.Application") wordapp.documents.Open "C:\Users\DT168\Desktop\KTW\test.docx" wordapp.Visible = True End Sub
-
@Y-Excel-Access נראה לי שצריך להשתמש ב-
getObject
במקוםcreateObject
כדי לקבל מופע קיים של וורד
עיין בכתבה זו: https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/getobject-createobject-behavior -
@yossiz לכאורה צריך את שניהם לשני המקרים:
Public Sub CanIHaveAWordPlease() Dim WordApp As Object 'Try to get an open instance On Error Resume Next Set WordApp = GetObject(, "Word.Application") On Error GoTo 0 'If nothing was found, create a new instance If WordApp Is Nothing Then Set WordApp = CreateObject("Word.Application") WordApp.Documents.Add End If WordApp.Visible = True WordApp.Activate End Sub
-
@OdedDvir ו @yossiz תודה רבה.
זה באמת היה הכיוון מחשבה שלי, וקיבלתי את האישור (וא"כ אין הבאג תלוי אלא בי:( - בקוד שניסיתי ליצור מזה, אבל השיטה נכונה.מה שהסתבכתי זה עם הקישור - אני צריך לפתוח את הקישור המסויים הזה, ולהתייחס לDOCUMENT הנכון.
אני נתקע כאן בנסיונות למיניהם...
Dim wrdDoc As Variant Set wrdDoc = wrdApp.Documents.Open(strPathFile)
בקוד זה הוא אומר שספריית "C:\USERS\שם המשתמש שלי\DECUMENTS לא נמצאה
Dim wrdDoc As Variant Set wrdDoc = wrdApp.Documents(Right(strPathFile, Len(strPathFile) - InStrRev(strPathFile, "\"))).Activate
בקוד זה הוא אומר "שם קובץ לא תקין" שגיאה 4160
כמובן בדקתי שהקישור פעיל - נפתח בלחיצה וכו'
אשמח לעזרה שוב!
-
@Y-Excel-Access
תיקח קובץ טקסט
תהפוך את הסיומת לudl,
תפתח אותו שוב ע"י לחיצה כפולה
תקשר אותו למסד הנתונים שאתה רוצה להתחבר אליו (עד שאתה מקבל הודעת אישור שהקונקט הצליח).
אח"כ תפתח אותו שוב בטקסט והרי לך הנתיב. -
@chagold אני חושב שהוא לא התכוון לקשר את המסמך word למסד הנתונים, אלא פשוט לפתוח את המסמך מתוך קוד vba שרץ באקסס.
@Y-Excel-Access בקוד שצירפת אתה לוקח רק את שם הקובץ ללא הנתיב, אתה אמור להכניס את הנתיב המלא של הקובץ:C:\Users\MyUser\Documents\Word\MyFile.docx
כי אם תכתוב רק את שם הקובץ, כך:
MyFile.docx
הוא יחפש אותו בתיקייה הנוכחית (שבה רץ הקוד).
אגב, כדי לטפל במאפייני קובץ, כגון להסיר נתיב\סיומת\וכו' מומלץ להשתמש באובייקט FileSystemObject שמיועד לכך. -
@OdedDvir כתב בVBA. איך לפתוח ולעבוד עם WORD על ידי ACCESS:
אגב, כדי לטפל במאפייני קובץ, כגון להסיר נתיב\סיומת\וכו' מומלץ להשתמש באובייקט FileSystemObject שמיועד לכך.
תודה רבה, ההוספה הזו היתה ממש תועלתית!
לתועלת הכלל אני כעת לומד על זה מ https://trumpexcel.com/vba-filesystemobject/
(מסתבר שיש עוד קישורים לאתרי לימוד מוצלחים, זה מה שראיתי כרגע)