איך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?
-
אני רוצה לעשות שבעת עדכון מסויים, האקסס שולח מייל.
מה הקוד בVBA לכזה דבר?
תודה -
ראה פה:
https://www.prog.co.il/threads/שליחת-קובץ-במייל-באמצעות-אקסס.63432/
שמעתי שכיום זה לא עובד משום מה.
אתה כבר יודע לכתוב טיפה קוד VBA, או שאתה בדיוק כעת לומד על זה?
-
@dovid
הקישורים המופיעים שם דף לא תקני (404)
קישור אחד תקין על אנגלית שאני לא יודע!
נראה לך שיש סיכוי להתחיל לכתוב לבד VBA???... -
למה לא עובד.
אני משתמש עם זה. ועובד מצויין, -
@מלא אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
למה לא עובד.
אני משתמש עם זה. ועובד מצויין,אתה יכול להעלות פה קוד?
נודה לך מאד!!! -
@הכוכב-שלנו
צריך שם לדעתי תיקון קטן אבל הקוד הזה אמור לעבוד פיקסFunction SendMail(sEmail As String, Title As String, sText As String, Optional sFile As String = "") As String On Error Resume Next Dim cdomsg As Object Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .update End With ' build email parts With cdomsg .To = "to@gmail.com" .From = "from@gmail.com" '.sender = .Subject = "Subject" If Me.HtmlBody Then .HtmlBody = sText Else .TextBody = '"the full message body goes here. you may want to create a variable to hold the text" End If If Len(sFile) > 0 Then Dim arr As Variant arr = Split(sFile, ";") For i = 0 To UBound(arr) If Len(arr(i)) > 0 Then If Dir(CStr(arr(i)), vbNormal) <> vbNullString Then .AddAttachment arr(i) End If End If Next End If .Send End With Set cdomsg = Nothing If Err = 0 Then SendMail = "Mail Send" Else SendMail = Err.Description End If End Function -
@clickone אם מותר לשאול עוד.
עכשיו שמתי את זה באירוע בעת לחיצה.
הוא מראה לי מייד שגיאה בהתחלה, חשבתי שהשגיאה הוא שלא כתוב בסוף end sub אבל כתבתי ולא עזר.
יש איזה הגדרות בג'ימל שצריך לשנות?
או משהו אחר? -
מה ש@clickone הביא זה פונקציה שאמורים לשים אותה מחוץ ללחצן ולשלוח לו call מלחצן + הפרמטרים.
אם אני זוכר נכון, הקוד הזה מצריך רפרנסים.
כמו"כ אתה צריך לאפשר בג'ימייל שליחה מתוכנות חיצוניות. -
@מלא אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
אשמח לעזרהמה ש@clickone הביא זה פונקציה שאמורים לשים אותה מחוץ ללחצן ולשלוח לו call מלחצן + הפרמטרים.
מה זה CALL ואיזה פרמטרים? (שם קובץ וכד'?)
אם אני זוכר נכון, הקוד הזה מצריך רפרנסים.
"רפרנסים" - מה זה?
כמו"כ אתה צריך לאפשר בג'ימייל שליחה מתוכנות חיצוניות.
איזה הרשאה לתת?תודה רבה, אני חדש, רק מי שיש לו זמן שישיב לי בבקשה, תודה!
-
@clickone איך אני יכול לבדוק שאכן קיים (או שפשוט ווינדוס 7 מותקן, אבל מעדיף לבדוק...)
עכשיו סתם שאלה להעשרת ידע, מה זה CDO?
ואשמח אם תשיב לי איך לשים את הקוד באקסס -
@הכוכב-שלנו
אני שם לך כאן קוד בשביל לחצן.
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.On Error Resume Next Dim cdomsg As Object Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .update End With ' build email parts With cdomsg .To = "to@gmail.com" .From = "from@gmail.com" '.sender = .Subject = "Subject" .TextBody = '"the full message body goes here. you may want to create a variable to hold the text" If Len(sFile) > 0 Then Dim arr As Variant arr = Split(sFile, ";") For i = 0 To UBound(arr) If Len(arr(i)) > 0 Then If Dir(CStr(arr(i)), vbNormal) <> vbNullString Then .AddAttachment arr(i) End If End If Next End If .Send End With Set cdomsg = Nothing If Err = 0 Then msgbox "Mail Send" Else msgbox Err.Description End If -
@הכוכב-שלנו
מותקן בטוח.
CDO זו ספרייה של מייקרוסופט שנותנת לשלוח מיילים.
שים לב שאתה צריך לשנות שם את הפרמטרים של שולח ולמי אתה שולח וכואם לא הולך אני יעלה קובץ דוגמא
-
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת. -
@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת.קיבלתי
-
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid
אני חושב שאם הוא יקח את הקוד הספציפי ויעבור עליו סטפ ביי סטפ הוא יכול ללמוד המון.זה עדיין קפיצה. הוא צריך קודם להציג msgbox וכדומה.
-
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.
לי הוא לא עבד ללא התרת אפלקציות לא מאובטחות.
השתנה משהו? אני לא מתווכח.. -
@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid
אני חושב שאם הוא יקח את הקוד הספציפי ויעבור עליו סטפ ביי סטפ הוא יכול ללמוד המון.זה עדיין קפיצה. הוא צריך קודם להציג msgbox וכדומה.
- אני יודע לעשות Msgbox כולל נתונים לפי שדות בטבלה...
- אבל זה בסדר התגרת אותי!
-
@הכוכב-שלנו מעולה!
אתה כתבת בענוה יתירה שאתה לא יודע לכתוב קוד VBA. להבא, תיצמד לעובדות גם כשהם מחמיאות -
@dovid השם ישמור אותי אם זה נקרא לדעת לכתוב....
דרך אגב אחד התאוות לכל מתחיל באקסס זה הודעות קופצות (זה שיושב לצידך מתפלא, בעיניים שלו זה שכלול יותר גדול משליחת אימייל באקסס למשל...) -
-
@הכוכב-שלנו אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid השם ישמור אותי אם זה נקרא לדעת לכתוב....
דרך אגב אחד התאוות לכל מתחיל באקסס זה הודעות קופצות (זה שיושב לצידך מתפלא, בעיניים שלו זה שכלול יותר גדול משליחת אימייל באקסס למשל...)אין פה מקום לענווה ולדרגות רבות. מי שיודע להציג msgbox הוא נחשב יודע לכתוב קוד VBA. זה 0-1...
אני אכן מציע שתלמד את הקוד שהועלה, תנסה תשאל על כל שורה לא מובנת ואל תוותר עד שתכבוש את הקוד הזה. -
@clickone תודה.
בכל אופן אני מקווה ללמוד את השיטה ולשדרג אותה.
אני רוצה לעשות שבעת קבלת עדכון A ישלח מייל עם טקסט מסווים ל D
ובעת קבלת עדכון B ישלח מייל ל E
ועל זו הדרך -
@dovid בשביל ההבנה בכללי הפורום:
כאלו שאלות מותר לשאול?
מה הפירוש ABC?
לא נעים לשגע אנשים שלא חייבים לך כלום! -
- תעשה את זה עם טבלה....
- אם כבר, יש לי קלאס שלם של שליחת מיילים שבו אפשר להחזיק כמה חשבונות והוא טוען אותם לפי מה שביקשת. אם זה מעניין מישהו, אני יעלה את זה לכאן
-
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
- תעשה את זה עם טבלה....
- אם כבר, יש לי קלאס שלם של שליחת מיילים שבו אפשר להחזיק כמה חשבונות והוא טוען אותם לפי מה שביקשת. אם זה מעניין מישהו, אני יעלה את זה לכאן
מתפלא מהלב - זהב אבל אני מבקש ממך אל תעלה כי אתה נותן לי קביים תן לי ללכת לבד...
-
@הכוכב-שלנו את השאלה הבאה אתה שואל רק אם הבנת את כל הקוד + הוא עובד לך.
מבחינת חוקים - הפורום הוקם בשביל שאלות כאלה.
לא עוזרים לך בחינם, אלא פשוט אוהבים לשתף ולעזור אחד לשני - כל אחד גם מקבל תועלת גם מתשובות שלא אחרים וגם מתשובות שלו עצמו.@הכוכב-שלנו אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
מתפלא מהלב - זהב אבל אני מבקש ממך אל תעלה כי אתה נותן לי קביים תן לי ללכת לבד...
מצטרף! לשתי חלקי המשפט.
-
פוסט 17 מתוך 54