איך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?
-
אני רוצה לעשות שבעת עדכון מסויים, האקסס שולח מייל.
מה הקוד בVBA לכזה דבר?
תודה -
ראה פה:
https://www.prog.co.il/threads/שליחת-קובץ-במייל-באמצעות-אקסס.63432/
שמעתי שכיום זה לא עובד משום מה.
אתה כבר יודע לכתוב טיפה קוד VBA, או שאתה בדיוק כעת לומד על זה?
@dovid
הקישורים המופיעים שם דף לא תקני (404)
קישור אחד תקין על אנגלית שאני לא יודע!
נראה לך שיש סיכוי להתחיל לכתוב לבד VBA???... -
@מלא אמר באיך כותבים ב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
-
@הכוכב-שלנו
צריך שם לדעתי תיקון קטן אבל הקוד הזה אמור לעבוד פיקס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 הביא זה פונקציה שאמורים לשים אותה מחוץ ללחצן ולשלוח לו call מלחצן + הפרמטרים.
אם אני זוכר נכון, הקוד הזה מצריך רפרנסים.
כמו"כ אתה צריך לאפשר בג'ימייל שליחה מתוכנות חיצוניות. -
@מלא הקוד לא צריך רפרנסים.
בגלל זה קיימת השורה הבאהSet cdomsg = CreateObject("CDO.message")
שיוצאת אובייקט מבחץ.
כמובן שCDO צריך להיות מותקן. אבל הוא מותקן במחשב בברירת מחדל החל מווינדוס 2000@clickone איך אני יכול לבדוק שאכן קיים (או שפשוט ווינדוס 7 מותקן, אבל מעדיף לבדוק...)
עכשיו סתם שאלה להעשרת ידע, מה זה CDO?
ואשמח אם תשיב לי איך לשים את הקוד באקסס -
@מלא אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
אשמח לעזרהמה ש@clickone הביא זה פונקציה שאמורים לשים אותה מחוץ ללחצן ולשלוח לו call מלחצן + הפרמטרים.
מה זה CALL ואיזה פרמטרים? (שם קובץ וכד'?)
אם אני זוכר נכון, הקוד הזה מצריך רפרנסים.
"רפרנסים" - מה זה?
כמו"כ אתה צריך לאפשר בג'ימייל שליחה מתוכנות חיצוניות.
איזה הרשאה לתת?תודה רבה, אני חדש, רק מי שיש לו זמן שישיב לי בבקשה, תודה!
@הכוכב-שלנו
אני שם לך כאן קוד בשביל לחצן.
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.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
-
@clickone איך אני יכול לבדוק שאכן קיים (או שפשוט ווינדוס 7 מותקן, אבל מעדיף לבדוק...)
עכשיו סתם שאלה להעשרת ידע, מה זה CDO?
ואשמח אם תשיב לי איך לשים את הקוד באקסס@הכוכב-שלנו
מותקן בטוח.
CDO זו ספרייה של מייקרוסופט שנותנת לשלוח מיילים.
שים לב שאתה צריך לשנות שם את הפרמטרים של שולח ולמי אתה שולח וכואם לא הולך אני יעלה קובץ דוגמא
-
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת.@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת.קיבלתי
-
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת. -
@הכוכב-שלנו
אני שם לך כאן קוד בשביל לחצן.
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.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
-
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid
אני חושב שאם הוא יקח את הקוד הספציפי ויעבור עליו סטפ ביי סטפ הוא יכול ללמוד המון.זה עדיין קפיצה. הוא צריך קודם להציג msgbox וכדומה.
@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid
אני חושב שאם הוא יקח את הקוד הספציפי ויעבור עליו סטפ ביי סטפ הוא יכול ללמוד המון.זה עדיין קפיצה. הוא צריך קודם להציג msgbox וכדומה.
- אני יודע לעשות Msgbox כולל נתונים לפי שדות בטבלה...
- אבל זה בסדר התגרת אותי!