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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
בערלב

בערל

@בערל
ניהול
אודות
פוסטים
3.5k
נושאים
122
קבוצות
1
עוקבים
15
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

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

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

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

    1. צור שאילתא qryMailMerge. (לא משנה מה התחביר שלה כרגע, אנו נשנה זאת מיד). ובמיזוג דואר תבחר אותה כמקור הנתונים.
    2. בקוד הלחצן:
    DoCmd.RunCommand (acCmdSaveRecord)
    CurrentDb.Execute "qryUpdate_Data", dbFailOnError
    
    Dim SQL as String
    SQL = "SELECT Data.ID, Data.FirstName, Data.LastName " _
        & "FROM Data " _
        & "WHERE (Data.ID = " & Me.ID & ");"
    CurrentDb.QueryDefs("qryMailMerge").SQL = SQL
    
    DoCmd.GoToRecord , , acNext
    RunMailMerge "C:\Users\.....TEMPLATE.docx", "C:\Users......pdf", True
    

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

    גאוני!

    עובד פנטסטי

    תודה על הכל!


  • תוכנה ליצירת + סריקת טפסים
    בערלב בערל

    @פלורידה

    איך הנתונים ממולאים? במחשב? או בכתב יד?

    איך ולהיכן אתה רוצה לקבל את הנתונים בחזרה? לתוך טבלה?


  • מחלוקת באלי אקספרס
    בערלב בערל

    @nokia

    שים לב שיש במסמך פרטים אישיים


  • נתונים באקסל
    בערלב בערל

    למיטב הבנתי הוא מתכווין לזה:
    https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html


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

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

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

    לא אכפת לי שזה רץ מתוך VBA, אני לא זקוק לשאילתא לבד.
    אבל מעניין אותי לשמוע כשיש לך זמן...


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

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

    @בערל אני חושב שהבנתי הפעם.
    השגיאה הנ"ל פירושה ששדה מסויים בשאילתא לא נמצא.
    כאשר אתה רוצה לקחת שדה מתוך טופס, הכל טוב ויפה כל עוד הדברים נשארים בתוך השאילתא.
    אבל אם רוצים להריץ על ידי Execute שאילתא שמשתמשת בנתון מתוך טופס, זה גורם בעייה תחבירית, כי שם השדה [Forms]![frmData]![ID] לא תקין.

    מה שאתה צריך לעשות הוא לחשב את הערך ואחר כך להכניס אותו לתחביר ה-SQL. כך:

    TabeDelete "MailMerge"
    Dim SQL as String
    SQL = "SELECT Data.ID, Data.FirstName, Data.LastName " _
        & "INTO MailMerge " _
        & "FROM Data " _
        & "WHERE (Data.ID = " & Me.ID & ");"
    CurrentDb.Execute SQL
    

    👍 👍 👏 👏

    ת
    עובד מעולה!!!
    תודה ענקית על הכל!


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

    @odeddvir

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


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

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

    מה התחביר של qryUpdate_Data?

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

    UPDATE Data SET Data.DobT = Format([dob],"dd/mm/yy"), 
    Data.Age = IIf([age] Is Null,DateDiff("yyyy",[Dob],Now())+Int(Format(Now(),"mmdd")<Format([Dob],"mmdd")),[age]);
    

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

    
    Private Sub cmdPrint_Click()
    
    CurrentDb.Execute "qryMake_MailMerge"
    
    End Sub
    

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

    אגב: סליחה על הדיליי בתגובה

    😱 🤔

    סליחה???
    אני זה שצריך לבקש...


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

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

    @בערל אני לא מבין את התחביר של השאילתא:

    SELECT qrySelect_currentID.Data.ID, qrySelect_currentID.Data.FirstName, qrySelect_currentID.Data.LastName, INTO MailMerge
    FROM qrySelect_currentID;
    
    1. איך יתכן שתי נקודות בשם שדה qrySelect_currentID.Data.ID, האם אתה משתמש בשדה עם ערכים מרובים?
    2. אחרי LastName יש פסיק מיותר

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

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

    SELECT qrySelect_currentID.ID, qrySelect_currentID.FirstName, qrySelect_currentID.LastName
    INTO MailMerge
    FROM qrySelect_currentID
    
    

    ניסיתי גם לקחת ישירות מטבלת הנתונים:

    SELECT Data.ID, Data.FirstName, Data.LastName
    INTO MailMerge
    FROM Data
    WHERE (((Data.ID)=[Forms]![frmData]![ID]));
    

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

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

    א. השאילתא שכתבת מצויינת, פשוט חייכתי מאוזן לאוזן!

    😊

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

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

    זה היופי באקסס, שאפשר לשלב נתונים מהטופס ישירות בשאילתא.

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

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

    אבל לא הצלחתי לגרום לקוד VBA להריץ אותו, אני מקבל את השגיאה הבאה:
    467f3c32-63bf-4991-9bf2-615c0e2ec2af-image.png

    Debug מצביע על שורה 9

    בתחתית הטופס יש לחצן שמכיל את הקוד הבא:

    DoCmd.RunCommand (acCmdSaveRecord)
    
    On Error Resume Next
    DoCmd.DeleteObject acTable, "MailMerge"
    On Error GoTo 0
    
    CurrentDb.Execute "qryUpdate_Data", dbFailOnError
    
    CurrentDb.Execute "qryMake_MailMerge"
    
    DoCmd.GoToRecord , , acNext
    
    RunMailMerge "C:\Users\.....TEMPLATE.docx", "C:\Users......pdf", True
    

    יש לציין שהשאילתא עובדת מצוין בהרצה ידנית, רק לא דרך הקוד.
    תחביר השאילתא:

    
    SELECT qrySelect_currentID.Data.ID, qrySelect_currentID.Data.FirstName, qrySelect_currentID.Data.LastName, INTO MailMerge
    FROM qrySelect_currentID;
    
    

    מה יכול להיות?

    qrySelect_currentID = שאילתת קיבוץ שמביאה את נתוני הטופס שפתוח
    Data = טבלת הנתונים המרכזית

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

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

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

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

    בעז"ה אשתדל יותר לשתף פעולה...


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

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

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

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

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

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


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

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

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

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

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

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

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




    \

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

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

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


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

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

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

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

    בבקשה:

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

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

    מדהים!

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

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

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

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


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

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

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

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

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


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

    @clickone

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

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

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

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


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

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

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

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

    תודה רבה!


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

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

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

    \

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

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

    אכן!


    \

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

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

    Word.accdb

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

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

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


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

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

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

    יש לי בערך 13 רשומות
    אני מנסה לעבור על הלינק שהבאת
    אני אוחז בשורות של קביעת הנתונים

    .ActiveDocument.Bookmarks("Title").Select
    .Selection.Text = (CStr(Forms![frmPrivacy]![Title]))
    

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

    את הנתונים אני מבין שהוא שולף מתוך טופס, אצלי מדובר בשאילתא. CStr זה שם הקובץ אקסס?


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

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

    @בערל
    אולי לא הבנתי נכון?

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

    הבנת מצוין
    אני יכול להשתמש בMail Merge בוורד שייקח את הנתונים מהשאילתא באקסס
    השאלה אם ניתן ליצור כפתור בתחתית הטופס למילוי שיעשה את כל העבודה בהתבסס על הנתונים שמולאו

    תודה רבה

  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • 11
  • 174
  • 175
  • 9 / 175
  • התחברות

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

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