אני לא מצליח
@OdedDvir אני לא אוהב לבקש קודים, כי אני אוהב ללמוד לבד. אבל במקרה זה אולי יש מצב לדוגמת קוד בבקשה?
ממש תודה על הכל!
ארי
-
מיזוג דואר מטבלת אקסס -
מיזוג דואר מטבלת אקסס@OdedDvir אמר במיזוג דואר מטבלת אקסס:
אם יש צורך לקשר את הוורד באופן דינמי, הכי פשוט הוא לפתוח את הוורד בלי לקשר לבסיס הנתונים, ולשמור אותו כך (רק עם הסימניות של השדות). לאחר מכן הקוד יוכל לעבוד כצפוי.
מיזוג דואר תמיד זה דינאמי. לא?
איך אני מכניס רק סימניות בלי לקשר לקובץ אקסס, כשאני לא בוחר קובץ למיזוג השורת כותרת נראית כך:
אין אפשרות להכניס שדות למיזוג.
תודה רבה!עריכה: אני מצרף כאן את קבצי האקסס והוורד, תודה.
מינהל_האוכלוסין.doc
למיזוג - עותק.accdb -
מיזוג דואר מטבלת אקסס@OdedDvir אוקיי.
כשאני פותח את הוורד ואקסס סגור הוא עובד מצוין.
גם אם אקסס פתוח הוא עובד.
רק בקוד יש בעיה. -
מיזוג דואר מטבלת אקסס@OdedDvir אין קובץ כזה.
לא אמור להיות בעיה במיזוג לקובץ פתוח? -
מיזוג דואר מטבלת אקסס@OdedDvir לא עוזר.
-
מיזוג דואר מטבלת אקסס@OdedDvir ניסיתי קוד כזה:
Public Function Export() MixToWord "מכתב", "C:\Users\1\מכתב.doc", True End Function Public Function MixToWord(StrTbl As String, strFile As String, Printer As Boolean) On Error Resume Next Dim OW As Object Dim StrPath As String StrPath = CurrentProject.Path & "\" & CurrentProject.Name Set OW = CreateObject("Word.Application") If Err <> 0 Then MsgBox "הייתה בעיה באיתחול וורד!" & vbCrLf & "אנא פנה לתמיכה (" & Err.Number & ")": Exit Function OW.Documents.Open strFile With OW.ActiveDocument.MailMerge .MainDocumentType = 0 .OpenDataSource Name:=StrPath, SQLStatement:="SELECT * FROM מכתב" .ViewMailMergeFieldCodes = 9999998 .ShowWizard InitialState:=6, ShowDataStep:=False, ShowTemplateStep:=False End With If Printer = True Then With OW.ActiveDocument.MailMerge .Destination = 1 .SuppressBlankLines = True With .DataSource .FirstRecord = 1 .LastRecord = -16 End With .Execute Pause:=False End With OW.Quit False Else OW.Visible = True OW.AppActivate OW.Caption OW.Activate End If End Function
קבלתי את השגיאה הבאה:
-
מיזוג דואר מטבלת אקסס@OdedDvir במיזוג דואר רגיל בהתחלה, ואז עם הקוד לעיל.
-
מיזוג דואר מטבלת אקסס@OdedDvir כן.
אבל לא ממש הצלחתי להוציא מתוכו משהו רלוונטי (קצת אריכות על דברים שלא רלוונטיים בשבילי).
אתה יודע להגיד לי מה הרעיון לפתרון, בעז"ה את הדרך אני ימצא... (אולי עם עוד קצת עזרה ).
תודה. -
מיזוג דואר מטבלת אקססצהריים טובים.
יש לי טבלה עם נתונים וכן קובץ וורד של מכתב עם מיזוג דואר שמקור הנתונים שלו זו הטבלה הנ"ל.
אני רוצה לעשות קוד VBA שפשוט ידפיס את הקובץ עם הנתונים העדכניים מהטבלה (יש בה רק שדה אחד כל פעם).
הבעיה היא ששמתי לב שכאשר קובץ האקסס פתוח אי אפשר לעשות מקור נתונים אליו.
כרגע מה שעשיתי זה שהקוד קודם מייצא את הטבלה לאקסל, ואז מגדיר את המקור נתונים של הוורד לאקסל.
הבעיה בזה היא, א' זה ארוך ולוקח קצת זמן, וב' אני לא מצליח לכתוב לו למחוק את הקובץ אקסל לאחר הפעולה, כנראה כי זה נשאר לו פתוח בזכרון.
יש למישהו פתרון יותר טוב?
תודה.זה הקוד הנוכחי:
Public Function Export() MixToWord "מכתב", "C:\Users\1\Downloads\מכתב.docx", True End Function Public Function MixToWord(StrTbl As String, strFile As String, Printer As Boolean) On Error Resume Next Dim OW As Object Dim StrPath As String If IsNothing(Dir(strFile)) Then MsgBox "!הקובץ אינו קיים" & vbCrLf & ":מיקום קובץ" & vbCrLf & strFile, vbMsgBoxRight + vbInformation, "מיקום קובץ שגוי": Exit Function Err.Clear StrPath = Environ("TEMP") & "\מכתב.xlsx" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, StrTbl, StrPath, True Set OW = CreateObject("Word.Application") ' New Word.Application If Err <> 0 Then MsgBox "הייתה בעיה באיתחול וורד!" & vbCrLf & "אנא פנה לתמיכה (" & Err.Number & ")": Exit Function OW.Documents.Open strFile OW.ActiveDocument.MailMerge.MainDocumentType = 0 OW.ActiveDocument.MailMerge.OpenDataSource Name:=StrPath, SQLStatement:="SELECT * FROM `מכתב`" OW.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = 9999998 OW.ActiveDocument.MailMerge.ShowWizard InitialState:=6, ShowDataStep:=False, ShowTemplateStep:=False If Printer = True Then ' APrint = PrintrDef ' OW.ActivePrinter = APrint With OW.ActiveDocument.MailMerge .Destination = 1 ' wdSendToPrinter .SuppressBlankLines = True With .DataSource .FirstRecord = 1 ' wdDefaultFirstRecord .LastRecord = -16 ' wdDefaultLastRecord End With .Execute Pause:=False End With OW.Quit False Else OW.Visible = True OW.AppActivate OW.Caption OW.Activate End If End Function
-
אופיס 32 או 64?תודה לכולכם!!!
עזרתם לי מאוד.
בשורה התחתונה אני מבין שזה לא אמור לפתור לי את הבעיה של האיטיות, אולי לשנות את הקוד כמו ש @OdedDvir אומר.
אולי עוד אני איעזר בכם בשביל זה
תודה! -
אופיס 32 או 64?צהריים טובים.
אשמח לשמוע חוות דעת מהמומחים כאן בקשר לאופיס.
יש לי תוכנה באקסס עם די הרבה קודים לולאות וכדו'.
כמו"כ יש לי קובץ אקסל שמושך נתונים מהטבלה באקסס.
עכשיו יש לי אופיס 2016 32 סיביות, ויש כמה קודים שדי לוקחים זמן (במיוחד החיבור לאקסל).
האם יש יתרון לעבור לאופיס 64 סיביות?
יצויין שיש לי מחשב עם 16 ג'יגה ראם, והבנתי שעם 32 סיביות הוא פחות מנצל את המעבד.
דעתכם?
תודה רבה -
שמות אובייקטים ממערךDim Json As Object Dim Key As Object
-
שמות אובייקטים ממערך@dovid
הוא מחזיר שגיאה:
תודה!
-
שמות אובייקטים ממערך@dovid לא עובד.
הוא נתקע בשורה הראשונהFor Each Key In Json.Keys()
-
שמות אובייקטים ממערך@dovid משהו כזה:
Set Json = JsonConverter.ParseJson(Response) For Each element In Json Debug.Print element(i) i = i + 1 Next element
הוא לא מחזיר שגיאה, אבל פשוט מתעלם.
תודה. -
שמות אובייקטים ממערךערב טוב.
אני משתמש בקוד VBA אקסס בפונקציה שממירה json למערך (JsonConverter), ומוציא ממנו נתונים עם קוד כזה: element("Name")
אני מנסה עכשיו לכתוב קוד שיציג לי את כל השמות של האלמנטים הקיימים, ניסיתי לעשות לולאה ולכתוב element(1) לדוג' אבל הוא מזהה רק שם של האלמנט ולא במספר.
האם יש אופציה למצוא את השמות שלהם?
תודה. -
קבוצת התכנות הסגורה@dovid קודם כל תודה על הניהול המדהים של הפורום!
שנית, אולי יש אפשרות לפחות להעביר את כל ההודעות מהקבוצה הסגורה לפורום הפתוח?
כדי שלפחות יהיה לכולם את החומרים ששם.
כמובן אפשר לסגור את כל השירושים שלא יהיה אפשרות להגיב עליהם / לפתוח אותם מחדש.
שוב תודה. -
הו"ק באמצעות apiמצורפים שתי מסמכים של תיעוד הAPI של קשר (קהילות).
דוגמאות קוד API.docx
API לסליקה של קשר.docx -
משחק שחמט -
אקסס|vba שימוש בresponsetext בשביל למלאות טופס@צבי-ש אתה נתקע רק בהכנסה של הנתונים לטופס, לא?
אז תצרף את הקוד הרלוונטי.