קודים לתקשור עם מערכת טלפונית דרך אקסס
-
@גבאי
אני לא יודע האם אני יהיה זמין בלילה אבל מה שאתה יכול לעשות זה ללחוץ על F12 כאשר הקובץ פתוח ואז ניתן לעשות שמירה שהיא משכפלת את הקבצים לאחמ''כ אתה מוחק מהקובץ החדש את כל הנתונים שלך ושומר ואז בעכבר ימני אתה סוגר את זה בקובץ זיפ (ZIP) או ראר (RAR) ומעלה את זה לפורום
כלומר אתה לוחץ על הסימון המודגש ובוחר את הקובץ ושולח -
@גבאי @עמוד-הימני-פטיש-החזק @פיסטוק-חלבי @dudu
שלום
כיון שהזכרתם את הניק שלי עם @ קיבלתי התראה לאימייל
אנסה להסביר כאן האיך לעשות שייבא רק רשומות חדשות.קודם כל הסבר תיאורתי,
המודול של הורדת קבצים עובד בצורה כזו:- קבלת מחרוזת המכילה את קובץ ה ymgr מהשרת
- המרת המחרוזת לפורמט json (זוהי שיטה לייצג טבלה במחרוזת טקסטאולית)
- לולאה שרצה על כל הרשומות ב json ואכסונם בטבלה מקומית
הקוד שמייבא רק רשומות חדשות מעמיד תנאי בדיקה האם המזהה הסידורי של הרשומה מקובץ ה ymgr גבוה מהמזהה הסידורי המקסימלי שמאוחסן בטבלה המקומית, ורק אם כן מייבא אותו
לדוגמא: אם אתה מייבא קובץ aprovalAll.ymgr לטבלה מקומית בשם 'קבלת נתונים'. אזי הקוד יבדוק בכל רשומה שתתקבל מקובץ ה ymgr את שדה Booking, האם הוא גבוה יותר מהערך המקסימלי בשדה Booking (או איך שקראת לו) בטבלה המקומית, ורק באם הוא גבוה יותר, המערכת תייבא את הנתון
שים לב, לקבצים שונים, המזהה יכול להיות שונה (לדוגמא בקובץ aproval_number_log המזהה הוא ApprovalNumber), או לא קיים (לדוגמא בקבצי נתוני השמעה LogFolderEnterExit-yyyy-mm) , במקרה כזה יהיה עלינו להתאים את הקוד לקובץ הספציפינקודה חשובה: אין באפשרות הקוד לבדוק את הקובץ ymgr עצמו, אלא רק למנוע את אחסון הרשומות בטבלה המקומית, זאת אומרת שהקוד יכול להיכנס רק בין שלב 2 לשלב 3
זה אומר ששלב 1 ובעיקר שלב 2 (שהוא השלב המאסיבי ביותר), ירוצו על כל הקובץ, ורק שלב 3 יסונן לרשומות החדשות
יש בזה חיסכון מסויים בזמן הריצה, אבל לא חיסכון משולם
ישנה אפשרות לסנן את קובץ ה ymgr עצמו וכך לחסוך גם את שלב 2 (על ידי replace של המחרוזת, למי שמבין), אבל בשביל זה צריך לעשות התאמה אישית לקובץ מסויים ולפורמט שלו, ואינני יכול להעלות כאן דוגמא כלליתמכיון שלכל אחד משתמש בקודים לייבוא קובץ אחר, וגם כל אחד מאכסן את המזהה בטבלה אחרת, אני מעלה כאן את הקוד הכללי, וכל אחד יעשה לעצמו את ההתאמה, בהמשך (אם יהיה סיפק בידי) אעלה תיקון למודול עצמו (כמו שכבר הבטחתי...)
נקודה חשובה, המודלים שהעלתי הוגדרו כך שבכל ייבוא נתונים נמחקת הטבלה המקומית הקודמת שמחזיקה את הנתונים, לצורך ייבוא נתונים לאותה הטבלה יש להכניס את הערך 3 בקוד CreatingTable כמו שמוצג בדוגמא
הקוד יכנס בקוד ImportTextToTable (-ייבא טקסט אל הטבלה) במודול ImportingFiles (-ייבוא קבצים)
הסבר בגוף הקודSub ImportTextToTable(strText As String, strTableName As String) NamesFildsFile = GetNameFilds(strText) chrStartRow = Mid(strText, 1, 1) strText = "[{""" & strText strText = Replace(strText, "#", """:""") strText = Replace(strText, "%", """,""") strText = Replace(strText, Chr(13) & Chr(10) & chrStartRow, """},{""" & chrStartRow) strText = Replace(strText, Chr(13) & Chr(10), """}]") Dim Json As Object Set Json = JsonConverter.ParseJson(strText) 'עד כאן מתבצע שלב המרת ה ymgr ל json 'כעת הקוד מתחיל את ייבוא הרשומות, שימו לב שיש להגדיר שיאחסן באותה הטבלה ולא שימחוק את הטבלה הישנה (הכנסת הערך 3 בסוף הקוד) Set rs = CurrentDb.OpenRecordset(CreatingTable(strTableName, NamesFildsFile,3)) 'מכאן מתבצע האחסון של הרשומות בטבלה, וכאן המקום להכניס את הקוד 'קודם כל נמצא את הערך המקסימלי של הטבלה הקיימת על ידי הקוד הזה 'כאן אני כותב דוגמא לייבוא קובץ ה aprovalAll שהמזהה שלו הוא Booking יש להחליף לפי הענין ValMax = Dmax("Booking", strTableName) 'עכשיו הקוד מתחיל לייבא בפועל. נכניס לו תנאי בתוך הלולאה For Each CurrentId In Json ValID = CurrentId("Booking") IF ValID > ValMax then rs.AddNew For Each filds In NamesFildsFile valJson = CurrentId(filds) rs(filds) = valJson Next rs.Update End IF Next End Sub
-
@גבאי @עמוד-הימני-פטיש-החזק @פיסטוק-חלבי @dudu
עדכנתי את הפוסט הראשון
ובכללו העלתי קובץ אקסס מעודכן
הוספתי בקובץ הזה שידורגים רבים בכללם תקשור עם קודים של שיגור הודעות (קמפיינים רשימות תפוצה), אפשרות לעדכון ערכי ברירת מחדל, ועוד כפי שתחזינה עינכם מישריםבטופס ייבוא נתונים הוספתי אופציה לסנן את הקובץ ymgr עצמו, זאת אומרת להחליט כמה שורות לייבא מתוך הקובץ, האופציה הזו נותנת מרווח תמרון גדול
ולכם היא נותנת פתרון מושלם בשביל לייבא רק רשומות חדשות. פשוט לבדוק כמה רשומות קיימות כעת בטבלה המקורית, ולרשום בטופס לייבא את הקובץ רק מרשומה x ומעלה
הוספתי גם אפשרות שאם הייבוא הוא לטבלה קיימת, יש כפתור שנותן אוטומטי את כמות הרשומות הישנות שמאוחסנות בטבלהמקווה שעזר לכם!
בהצלחה -
@אריה כל הכבוד חיכינו לזה הרבה זמן והיה שווה (וגם האופציה של נתוני ברירת מחדל שווה המון המון........................
ממש משהו מושקע ומאוד מאוד גמיש לכל האפשרויות והשימושים
אבל ניסיתי לטפל בפונקציה של שיגור הודעות ובכל סוגי הפקודות שאני נותן לו הוא מחזיר לי שגיאה הזו
-
@גבאי
אתה צודק, נשמטה שורה אחת, תיקנתי את הקובץ
נקודה נוספת, מכיון ש API של ימות עודכנו רבות מאז שיצרתי את הקובץ, יתכן שחלק מהפקודות אינם מותאמות או לא מסונכרות, לא בדקתי את כולם -
האם יש איזה שהוא דרך קודים האלו להוריד את רשימת הקבצים כולל השם המקורי?
ולהכניס לטבלה
זה יכול להיות נהדר! -
@מתעניין אתה מתכוון להוריד לטבלה את רשימת הקבצים שנמצאים בשלוחה?
אני עשיתי כזאת פונקציה אצלי. -
@dudu
וזה פורסם כאן ? כי לא ראיתי -
@חיובי זה לא פורסם, מכיוון שעבדתי על זה הרבה מאד, אם מישהו מעוניין בזה בתשלום, אפשרי.
-
@dudu
מה הכתובת מייל שלך? -
פוסט זה נמחק! -
@אריה אמר בקודים לתקשור עם מערכת טלפונית דרך אקסס:
עדכנתי את הפוסט הראשון
תודה רבה. הקובץ המעודכן עובד עם שרת פרייבט?
-
@אריה
באפשרות של מידע על נתוני האזנה, וסיכום של דקות האזנה לקובץ, הבעיה שזה מסכם רק עבור מאזין אחד, איך אפשר לדעת סיכום לכולם? -
@קו-בית-יעקב
יש גם שאילתה שמסכמת לפי שלוחה ולא לפי מאזין -
@אריה אמר בקודים לתקשור עם מערכת טלפונית דרך אקסס:
@קו-בית-יעקב
יש גם שאילתה שמסכמת לפי שלוחה ולא לפי מאזיןמה התרגום לעמודות?
-
ל @אריה תודה על כל השידרוגים
-
@אריה @dudu
לאחרונה נעדרתי קצת מן הפורום מסיבות כלשהם
אבל היה תענוג לראות את הקובץ אקסס החדש שאריה ז''ל הביא איתו מעולם האמת וגם לראות את השיכלולים של dudu וזה פשוט עשה לי חשק לחבר את שנייהם לקובץ אחד אז למה לא הוא והנה הוא מוגש לפניכם
אשמח לקבל ביקורת או הערה (בונה)
שני דברים נוספים רציתי לעשות ועוד לא הסתייע מילתא
א' הסבר לכל טופס
ב' טופס שיכלול את כל האפשרויות
חושבני שזה נצרך ואשמח אם תאירו את עיני בעניין האם זה נצרך (הבקשה היא לכלל חברי הפורום שאשמח להיות להם לעזר)
עודכנה גירסה חדשה כאן
רציתי לציין שאחד המעלות הגדולות של האקסס עם הטבלאות ליצירת שלוחת וכו' שאפשר לבנות מערכת שלמה באקסס עם מחשב ללא חיבור ולאחר מכן כשמחוברים פשוט רק ללחוץ את המספר מערכת והסיסמה ולעלות את כל הקובץ שבניתם -
@אריה
אגב אריה אם אתה כבר כאן אולי תגלה לנו איפה למדת אקסס זה מאוד מעניין -
@אור-האורות זה קשור לטופס החדש נתוני המערכת
-
@מתעניין
אתה שואל או מסביר וא''כ מה התכוונת