דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. הדפסת ד''וח מאקסס על בסיס קובץ וורד

הדפסת ד''וח מאקסס על בסיס קובץ וורד

מתוזמן נעוץ נעול הועבר תוכנה
40 פוסטים 6 כותבים 1.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מנחםמ מנותק
    מנחםמ מנותק
    מנחם
    השיב לבערל ב נערך לאחרונה על ידי
    #9

    @בערל
    יש שם 2 אפשרויות
    הראשון זה עם סימניות
    כלומר אתה יוצר סימניות במסמך
    ואח"כ עובר עליהם ומכניס להם ערכים
    את האמת שלא מכיר את זה כל כך

    ובשני יש דוגמא של מיזוג דואר
    אבל העלו לך כאן קובץ מוכן
    שאולי צריך להתאים אותו לצרכים שלך

    תגובה 1 תגובה אחרונה
    2
    • A מנותק
      A מנותק
      avi rz
      השיב לבערל ב נערך לאחרונה על ידי
      #10
      פוסט זה נמחק!
      תגובה 1 תגובה אחרונה
      1
      • OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        השיב לבערל ב נערך לאחרונה על ידי OdedDvir
        #11

        @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

        תוכל להסביר על זה?

        הרעיון בקוד הנ"ל הוא לקבוע סימניות במסמך וורד, ואחר כך לשנות את הטקסט שלהם לפי השדות המתאימים.

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

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

        מה הכוונה Bookmarks? איך הוא יודע למה אני מתכווין?

        הוא לא באמת יודע, פשוט מי שהכין את הוורד נתן שם לסימניה שיעזור לו לזהות איזה שדה להכניס לסימנייה. למשל לסימנייה Bookmarks("Title") הוא מכניס את הערך של השדה Title בטופס.

        תגובה 1 תגובה אחרונה
        1
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          כתב ב נערך לאחרונה על ידי
          #12

          @בערל , אני מציע שתוריד ןתנסה את הקובץ ש @מלא הביא מהארכיון ( @מלא , תודה. אני אפילו שכחתי מזה...)
          כי אני חושב שזה ממש מכסה את כל מה שרצית.

          אין טסט כמו פרודקשן.

          המייל שלי urivpn@gmail.com

          תגובה 1 תגובה אחרונה
          2
          • בערלב מנותק
            בערלב מנותק
            בערל ניהול
            כתב ב נערך לאחרונה על ידי
            #13

            תודה רבה לכולם על המענה והעזרה הנרחבת

            אני מבין שהקוד הנ''ל לא רלוונטי בשבילי

            \

            @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

            אני מבין שאתה אוחז בשלב ג?

            אכן!


            \

            @מלא אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

            @בערל
            מצורף קובץ מיזוג לוורד
            ש @clickone העלה כאן פעם

            Word.accdb

            @clickone אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

            @בערל , אני מציע שתוריד ןתנסה את הקובץ ש @מלא הביא מהארכיון ( @מלא , תודה. אני אפילו שכחתי מזה...)
            כי אני חושב שזה ממש מכסה את כל מה שרצית.

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

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לבערל ב נערך לאחרונה על ידי
              #14

              @בערל לא בדקתי את הקוד של @clickone ואני לא יכול לייעץ לך לגביו. אם נשאר לך רק שלב ג, כלומר אתה אוחז במצב שאם אתה פותח את הוורד אתה רואה את הנתונים הנכונים מהטבלה, אז נשאר לכתוב רק את הקוד של הלחצן. זה לא כל כך קשה לדעתי. אם החלטת שזה הכיוון אעזור לך בשמחה.

              בערלב clickoneC 2 תגובות תגובה אחרונה
              2
              • בערלב מנותק
                בערלב מנותק
                בערל ניהול
                השיב לOdedDvir ב נערך לאחרונה על ידי
                #15

                @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                @בערל לא בדקתי את הקוד של @clickone ואני לא יכול לייעץ לך לגביו. אם נשאר לך רק שלב ג, כלומר אתה אוחז במצב שאם אתה פותח את הוורד אתה רואה את הנתונים הנכונים מהטבלה, אז נשאר לכתוב רק את הקוד של הלחצן. זה לא כל כך קשה לדעתי. אם החלטת שזה הכיוון אעזור לך בשמחה.

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

                תודה רבה!

                clickoneC תגובה 1 תגובה אחרונה
                0
                • clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  השיב לOdedDvir ב נערך לאחרונה על ידי
                  #16

                  @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                  אז נשאר לכתוב רק את הקוד של הלחצן

                  זה מה שעושה הקוד שלי

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

                  MixDocToWord "", "tbl", Me!tFile, Me!bPrint, ppdf, False
                  

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

                  tbl= שם הטבלה או השאילתא שלך (כדי לפשט את הדוגמא קראתי לו ככה, אתה יכול להחליף אותו למה שבא לך)

                  tFile = שם הקובץ - בדוגמא אני שם את שם הקובץ באופן אוטומטי מהתיקייה, אתה יכול לתת גם נתיב מוחלט לבחירתך (או מהגדרות בטבלה)

                  bPrint = האם לשלוח למדפסת, בוליאני (כן ולא)

                  ppdf = האם לסגור לקובץ PDF, בוליאני (כן ולא)

                  הפרמטר האחרון שעשיתי בדוגמא אותו קבוע ב False זה האם לייצר קובץ חדש,
                  ואחריו יש עוד משתנה שלא חייבים לשים, וזה האם למיין ואיך.

                  מקווה שזה יעזור

                  אם לא, @OdedDvir התותח כאן כדי להסביר איך לעשות את זה הכי טוב שיש

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

                  מלאמ בערלב 2 תגובות תגובה אחרונה
                  5
                  • clickoneC מנותק
                    clickoneC מנותק
                    clickone
                    השיב לבערל ב נערך לאחרונה על ידי
                    #17

                    @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                    נתוני זמן ותאריך ללא הפורמט שהגדרתי להם באקסס

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

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    תגובה 1 תגובה אחרונה
                    4
                    • מלאמ מנותק
                      מלאמ מנותק
                      מלא
                      השיב לclickone ב נערך לאחרונה על ידי מלא
                      #18

                      @בערל
                      זה כל הקבצים ש @clickone בעבר
                      מיזוג לוורד.zip

                      תגובה 1 תגובה אחרונה
                      3
                      • OdedDvirO מנותק
                        OdedDvirO מנותק
                        OdedDvir
                        כתב ב נערך לאחרונה על ידי OdedDvir
                        #19

                        @בערל הנה הקוד הבסיסי (הסתמכתי על המקור הזה)

                        Public Sub MergeWordDocument(inputFileName As String, outputFileName As String)
                            
                            'Open the templete document
                            Dim wdDoc As Object
                            Set wdDoc = GetObject(inputFileName, "Word.Document")
                            wdDoc.Application.Visible = False
                        
                            With wdDoc.MailMerge
                                 .MainDocumentType = 0 ' wdFormLetters
                                 .Destination = 0 ' wdSendToNewDocument
                                 .SuppressBlankLines = True
                                 .Execute Pause:=False
                            End With
                        
                            ' Save the output document
                            wdDoc.Application.Visible = True
                            wdDoc.Application.ActiveDocument.SaveAs outputFileName
                            ' Cleanup
                            wdDoc.Close SaveChanges:=False
                            Set wdDoc = Nothing
                        End Sub
                        

                        צור לחצן בטופס, ובאירוע לחיצה שלו תכתוב את הקוד הבא (תחליף כמובן את שמות הקבצים):

                        MergeWordDocument "D:\temp\myTemplete.docx", "d:\temp\output.docx"
                        
                        בערלב תגובה 1 תגובה אחרונה
                        4
                        • בערלב מנותק
                          בערלב מנותק
                          בערל ניהול
                          השיב לclickone ב נערך לאחרונה על ידי
                          #20

                          @clickone

                          תודה רבה על הפירוט
                          הורדתי ובדקתי את הזיפ, הלחצן של ההדפסה לא מגיב לי ולא הצלחתי לבדוק איך זה עובד.

                          @clickone אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

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

                          הסתדרתי ע"י הוספת עמודה בשאילתא והמרה לטקסט ע"י הפונקציה Format
                          d0444435-a0ab-4650-8fba-a3bfaa736cea-image.png

                          תגובה 1 תגובה אחרונה
                          2
                          • בערלב מנותק
                            בערלב מנותק
                            בערל ניהול
                            השיב לOdedDvir ב נערך לאחרונה על ידי בערל
                            #21

                            @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                            @בערל הנה הקוד הבסיסי (הסתמכתי על המקור הזה)

                            תודה רבה!
                            זה עובד מעולה!

                            האם יש אפשרות שישמור כPDF?
                            ובנוסף, זה שומר קובץ עם כל השורות של הנתונים ולא רק הנתון הנוכחי שמופיע בטופס, יש משהו לעשות בנידון?

                            OdedDvirO תגובה 1 תגובה אחרונה
                            0
                            • OdedDvirO מנותק
                              OdedDvirO מנותק
                              OdedDvir
                              השיב לבערל ב נערך לאחרונה על ידי OdedDvir
                              #22

                              @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                              האם יש אפשרות שישמור כPDF?

                              בבקשה:

                              Public Sub RunMailMerge(inputFileName As String, outputFileName As String, Optional saveAsPDF As Boolean = False)
                                  
                                  ' Open Template file
                                  Dim wdDoc As Object
                                  Set wdDoc = GetObject(inputFileName, "Word.Document")
                                      
                                  With wdDoc
                                      .Application.Visible = False
                                      With .MailMerge
                                          .MainDocumentType = 0                ' wdFormLetters
                                          .Destination = 0                     ' wdSendToNewDocument
                                          .SuppressBlankLines = True
                                          .Execute Pause:=False
                                      End With
                              
                                      ' Save output file
                                      .Application.Visible = True
                                      If saveAsPDF Then
                                          .Application.ActiveDocument.ExportAsFixedFormat _
                                                                          outputFileName:=outputFileName, _
                                                                          ExportFormat:=17, _
                                                                          OpenAfterExport:=True, _
                                                                          OptimizeFor:=wdExportOptimizeForPrint, _
                                                                          Range:=0, _
                                                                          IncludeDocProps:=True, _
                                                                          CreateBookmarks:=2, _
                                                                          BitmapMissingFonts:=True
                                      Else
                                          .Application.ActiveDocument.SaveAs outputFileName
                                      End If
                                      ' Cleanup
                                      .Close SaveChanges:=False
                                  End With
                                  Set wdDoc = Nothing
                              End Sub
                              
                              

                              כדי לייצא ל-PDF תוסיף בקריאה לפונקציה פרמטר שלישי ותתן לו ערך True:

                              MergeWordDocument "D:\temp\myTemplete.docx", "d:\temp\output.PDF", True
                              

                              ובנוסף, זה שומר קובץ עם כל השורות של הנתונים ולא רק הנתון הנוכחי שמופיע בטופס, יש משהו לעשות בנידון?

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

                              בערלב תגובה 1 תגובה אחרונה
                              3
                              • בערלב מנותק
                                בערלב מנותק
                                בערל ניהול
                                השיב לOdedDvir ב נערך לאחרונה על ידי
                                #23

                                @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                האם יש אפשרות שישמור כPDF?

                                בבקשה:

                                כדי לייצא ל-PDF תוסיף בקריאה לפונקציה פרמטר שלישי ותתן לו ערך True:

                                MergeWordDocument "D:\temp\myTemplete.docx", "d:\temp\output.PDF", True
                                

                                מדהים!

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

                                צודק, טעות שלי.

                                עד עכשיו היה לי טבלת בסיס אחת ושאילתא אחת שמוסיפה פרטים ע''י ביצוע חישובים.
                                היה לזה גם חסרון שלא היה לי את הנתונים בטבלה - רק בשאילתא

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

                                OdedDvirO תגובה 1 תגובה אחרונה
                                0
                                • OdedDvirO מנותק
                                  OdedDvirO מנותק
                                  OdedDvir
                                  השיב לבערל ב נערך לאחרונה על ידי
                                  #24

                                  @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                  ואז אעשה שאילתא חדשה שתביא לי רק את השורה האחרונה מהטבלה, (איך? ע''י בחירת ה-ID הגבוה ביותר?

                                  זה כנראה הכי פשוט. שאילתת קיבוץ עם הפונקציה Max על השדה ID.

                                  A בערלב 2 תגובות תגובה אחרונה
                                  1
                                  • A מנותק
                                    A מנותק
                                    avi rz
                                    השיב לOdedDvir ב נערך לאחרונה על ידי
                                    #25

                                    @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                    @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                    ואז אעשה שאילתא חדשה שתביא לי רק את השורה האחרונה מהטבלה, (איך? ע''י בחירת ה-ID הגבוה ביותר?

                                    זה כנראה הכי פשוט. שאילתת קיבוץ עם הפונקציה Max על השדה ID.

                                    אם אתה רוצה לייצא לpdf בזמן שהטופס פתוח אצלך, תוכל לסנן לפי הID שבטופס = כך גם תוכל לייצא דפים ישנים אם תרצה לתקן בהם משהו או סתם להדפיס שוב.

                                    תגובה 1 תגובה אחרונה
                                    3
                                    • בערלב מנותק
                                      בערלב מנותק
                                      בערל ניהול
                                      השיב לOdedDvir ב נערך לאחרונה על ידי בערל
                                      #26

                                      @odeddvir אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                      @בערל אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                      ואז אעשה שאילתא חדשה שתביא לי רק את השורה האחרונה מהטבלה, (איך? ע''י בחירת ה-ID הגבוה ביותר?

                                      זה כנראה הכי פשוט. שאילתת קיבוץ עם הפונקציה Max על השדה ID.

                                      עשיתי ככה:
                                      מקווה שלזה הכוונה

                                      SELECT TOP 1 Table1.ID, Table1.FirstName, Table1.LastName, .....,....,..., 
                                      FROM Table1
                                      ORDER BY Table1.ID DESC;
                                      




                                      \

                                      @avi-rz אמר בהדפסת ד''וח מאקסס על בסיס קובץ וורד:

                                      אם אתה רוצה לייצא לpdf בזמן שהטופס פתוח אצלך, תוכל לסנן לפי הID שבטופס
                                      כך גם תוכל לייצא דפים ישנים אם תרצה לתקן בהם משהו או סתם להדפיס שוב.

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

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • בערלב מנותק
                                        בערלב מנותק
                                        בערל ניהול
                                        כתב ב נערך לאחרונה על ידי
                                        #27

                                        ברוך השם המערכת עובדת מעולה
                                        מה שבעבר היה לוקח לי כעשר דקות עכשיו מתבצע תוך דקה!

                                        אפי' הוספתי ערך ברג'יסטרי שידלג על האזהרה של וורד בפתיחת המסמך על שימוש במיזוג נתונים.

                                        תודה רבה @OdedDvir היה נחמד לחזור לאקסס אחרי תקופה שלא נגעתי...😕 🙄

                                        תודה רבה לשאר החברים היקרים על ההתגייסות הנרחבת

                                        אני רוצה לנסות לשפר קצת ולשפשף אז אל תבטלו את המעקב בבקשה... 😊

                                        OdedDvirO תגובה 1 תגובה אחרונה
                                        5
                                        • OdedDvirO מנותק
                                          OdedDvirO מנותק
                                          OdedDvir
                                          השיב לבערל ב נערך לאחרונה על ידי OdedDvir
                                          #28

                                          @בערל
                                          א. השאילתא שכתבת מצויינת, פשוט חייכתי מאוזן לאוזן!
                                          ב. כדי להדפיס את העמודה הנוכחית, אתה יכול ליצור שאילתא באקסס שמסננת את הטבלה לפי הערך של השדה ID הנוכחי בטופס, כמו שציין @avi-rz, ולבחור אותה כמקור הנתונים בוורד. משהו כזה:

                                          SELECT *
                                          FROM Table1
                                          WHERE Table1.ID = Forms!YourFormName!ID
                                          

                                          זה היופי באקסס, שאפשר לשלב נתונים מהטופס ישירות בשאילתא.
                                          ג. אהבתי את הפטנט ברג'יסטרי, לא חשבתי על זה 👏

                                          היה נחמד לחזור לאקסס אחרי תקופה שלא נגעתי...

                                          נחמד לראות שאתה משתמש בה לתועלת, וזו זריקת עידוד בשבילי להמשיך עם ההדרכה 🤞

                                          בערלב תגובה 1 תגובה אחרונה
                                          4

                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום