שמירת שאילתא באקסס
-
@one1010
זה נראה שיש לך בטופס 3 טפסי משנה והמסנן שלך מסנן את שלשתם.
אז אני לא יודע איזה מהם תרצה לשלוח במייל.אני לקחתי את הסינון הראשון בקוד שלך, תדביק את זה
CurrentDb.QueryDefs("שםהשאילתה").SQL = "SELECT TOP " & TOPF & " M.*, CITY.NAME_CITY, COUNTRY.NAME_HEB" & _ " FROM (M LEFT JOIN CITY ON M.ID_CITY = CITY.ID) LEFT JOIN COUNTRY ON M.B_COUNTRY = COUNTRY.ID" & _ " WHERE (" & stLinkCriteria & ")"
אחרי שורה 59 בקוד שלך,
זה ישכתב את השאילתה. כמובן, תחליף לפני זה את שםהשאילתה לשאילתה שיצרת.ובקוד של הלחצן תכניס את הפקודה שמייצאת שאילתה שכתבתי לך למעלה ותוסיף גם את השליחה למייל.
-
@מלא כתב בשמירת שאילתא באקסס:
@one1010
זה נראה שיש לך בטופס 3 טפסי משנה והמסנן שלך מסנן את שלשתם.
אז אני לא יודע איזה מהם תרצה לשלוח במייל.אני לקחתי את הסינון הראשון בקוד שלך, תדביק את זה
ואם אני רוצה את שלושתם?
זה ישכתב את השאילתה. כמובן, תחליף לפני זה את שםהשאילתה לשאילתה שיצרת.
מה הכוונה?! איזו שאילתא יצרתי!? אני רק משתמש בטופס הקיים.
-
-
@one1010
נורא מסקרן אותי אם בנית את המערכת לבד או לקחת משהו קיים ומנסה להוסיף בו משהו.לפי השאלות נראה שלא למדת עדיין את המדריך של @OdedDvir שנמצא כאן
אני לא רוצה להכניס לך את הכל עם כפית לפה. מלאתי את הכפית עכשיו תעבור קצת על הקוד ותנסה לראות מה אתה צריך להוסיף כדי שזה יעבוד.
לעצם שאלתך, אני לא יודע [לא בדקתי] אם הטפסי משנה שלך לוקחים נתונים מאותם טבלאות ואתה יכול לשלוח רק קובץ אחד לאימייל, או שאתה רוצה לשלוח 3 קבצים.
איך שתחליט, הארוחה מוכנה ועם קצת לימוד תוכל לעשות את זה לבד.ולשאלה ב'. כדי לשלוח קובץ אקסל למייל עם תוצאות החיפוש אתה צריך לייצא קובץ אקסל מתוך שאילתה. את השאילתה הזאת אתה משכתב כל פעם לנתונים המתאימים בשבילך.
לחילופין אפשר גם לבנות קוד שיבנה סטרינג מלא של כל הנתונים ולשלוח למייל טקסט בגוף ההודעה בלי קובץ מצורף. אבל שוב, זה שאלה קצת אחרת וצריך לדעת איפה הידע שלך עומד ביחס לביצוע כדי שמישהו יוכל ל'הדריך' אותך. -
@ארי כתב בשמירת שאילתא באקסס:
@מלא כל הכבוד על הסבלנות.
נכון מאד!
@one1010 נראה לי שהגיע הזמן שתעשה קצת גוגל על דברים שמציעים לך, לא נראה לי שזו הדרך ללמוד אקסס.
תחפש איך יוצרים שאילתה, תעשה חיפוש על כל שורת קוד שמביאים לך כדי ללמוד מה היא עושה, ובסוף כמו שכולם לומדים תדע גם אתה מה לעשות.אתה צודק עקרונית, אני מאד אשמח ללמוד אקסס רק כרגע זה גדול עלי...
בהצלחה!
תודה רבה!
-
@מלא כתב בשמירת שאילתא באקסס:
@one1010
נורא מסקרן אותי אם בנית את המערכת לבד או לקחת משהו קיים ומנסה להוסיף בו משהו.כמו שכתבתי אני לא באמת מבין בזה כך שלא נראה לי באמת שאני יכול לבנות את זה לבד... -אני משתמש במשהו מוכן.
לפי השאלות נראה שלא למדת עדיין את המדריך של @OdedDvir שנמצא כאן
אני לא רוצה להכניס לך את הכל עם כפית לפה. מלאתי את הכפית עכשיו תעבור קצת על הקוד ותנסה לראות מה אתה צריך להוסיף כדי שזה יעבוד.
אני מבין... כמו שכתבתי כאן למעלה אני לא מבין בתכנות ואני לא חושב שבאמת אוכל ללמוד זאת ללא השקעה גדולה ולכן האמת היא שכרגע פשוט ביקשתי עזרה יותר מאשר ללמוד...
לעצם שאלתך, אני לא יודע [לא בדקתי] אם הטפסי משנה שלך לוקחים נתונים מאותם טבלאות ואתה יכול לשלוח רק קובץ אחד לאימייל, או שאתה רוצה לשלוח 3 קבצים.
אני רוצה לשלוח 3 קבצים- או קובץ אחד שיכיל את 3 התוצאות.
איך שתחליט, הארוחה מוכנה ועם קצת לימוד תוכל לעשות את זה לבד.
אני אנסה לבד קצת, מקווה שאצליח להגיע לאיזו שהיא תוצאה... אם לא אנסה שוב את סבלנותך..
ולשאלה ב'. כדי לשלוח קובץ אקסל למייל עם תוצאות החיפוש אתה צריך לייצא קובץ אקסל מתוך שאילתה. את השאילתה הזאת אתה משכתב כל פעם לנתונים המתאימים בשבילך.
מודה שאני לא מבין...[זאת הרמה שלי באקסס...] יש לי טופס חיפוש קיים, יש לי דאטה קיימת שבה נעשית החיפוש, איפה נכנסת כאן 'שאילתא' [מקווה שאני לא יוצא הדיוט..] אני סה"כ רוצה שברגע שאני מכניס לטופס הקיים שם לחיפוש יישלח למייל מה נכתב בטופס החיפוש ומה התוצאות שהתקבלו.
לחילופין אפשר גם לבנות קוד שיבנה סטרינג מלא של כל הנתונים ולשלוח למייל טקסט בגוף ההודעה בלי קובץ מצורף. אבל שוב, זה שאלה קצת אחרת וצריך לדעת איפה הידע שלך עומד ביחס לביצוע כדי שמישהו יוכל ל'הדריך' אותך.
עקרונית על זה חשבתי מראש, אבל אני בכלל לא בכיוון לדעת איך לעשות את זה. אני עומד במקום נמוך מדי...
שוב תודה רבה!
-
@ארי כתב בשמירת שאילתא באקסס:
@מלא כתב בשמירת שאילתא באקסס:
נורא מסקרן אותי אם בנית את המערכת לבד או לקחת משהו קיים ומנסה להוסיף בו משהו.
זה תוכנה מוכרת (ולא חוקית....)
לא צריך לכתוב כל דבר... לכן לא רציתי להעלות... אולי כדאי שתמחק?!
-
@one1010
אל תגלה לאף אחד..., בסוף הכנתי לך את הכל בכפית של כסף ממש.
תעדכן את הכתובות מייל במקומות המתאימים כמו שהדריכו אותך באשכול הסמוך.
הכנסתי גם את הקוד לשליחת מיילים משם, אז אם הוא כבר בקוד שלך, תמחק אותו, ותדביק את שלי.תמחק את השורות האלו
Private Sub FilterB_Click() On Error Resume Next UpDateView End Sub
ותדביק את כל זה
Private Sub FilterB_Click() On Error Resume Next UpDateView Dim strBodyText As String strBodyText = getBodyText(Me.Main.Form.RecordSource) & vbCrLf & vbCrLf strBodyText = strBodyText & getBodyText(Me.More.Form.RecordSource) & vbCrLf & vbCrLf strBodyText = strBodyText & getBodyText(Me.BB.Form.RecordSource) MsgBox Send(strBodyText) End Sub Function getBodyText(strSql As String) As String Dim rs As DAO.Recordset Dim i As Integer Dim strSeparator As String strSeparator = vbTab Set rs = CurrentDb.OpenRecordset(strSql) For i = 0 To rs.Fields.Count - 1 getBodyText = getBodyText & rs.Fields(i).Name & strSeparator Next i getBodyText = getBodyText & vbCrLf rs.MoveFirst Do While Not rs.EOF For i = 0 To rs.Fields.Count - 1 getBodyText = getBodyText & rs.Fields(i) & strSeparator Next i getBodyText = getBodyText & vbCrLf rs.MoveNext Loop rs.Clone rs.Close Set rs = Nothing End Function Public Function Send(strBodyText) Dim cdoConfig Dim msgOne Dim ErrStr Set cdoConfig = CreateObject("CDO.Configuration") With cdoConfig.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "YourEmail@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "YourPasswoed" .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Update End With Set msgOne = CreateObject("CDO.Message") Set msgOne.Configuration = cdoConfig msgOne.To = "To name <SendTo@gmail.com>" msgOne.From = "Your Name <YourEmail@gmail.com>" msgOne.Subject = "Subject" msgOne.TextBody = "TextBody" 'msgOne.AddAttachment "C:\Users\1\Downloads\Some File.pdf" msgOne.Send End Function
-
@one1010 זה ממש לא תקין.
אם אתה רוצה שלא רק יתנו לך בכפית אלא גם יאכילו אותך, ואתה לא רוצה להעלות את הקובץ שלך לכאן. אתה יכול לייצא רק את המודול VBA לקובץ ואתו להעלות.
ככה אולי @מלא ירצה לעזור לך יותר...
תעמוד בחלון הVBA על הטופס שבו נמצא הקוד הנ"ל, תלחץ על מקש ימני, ואז על Export File, ותשמור אותו במחשב.
לאמח"כ תעלה לכאן את הקובץ הזה, ונראה אם יהיה קל יותר לעזור לך. -
מצורף קובץ חדש.
תמחק את המודול הישן, ואז תעלה את החדש לתוכנה (מקש ימני כנ"ל ואז Impot File).
מקווה שיעבוד.
יש לך כמה מקומות שאתה צריך לעדכן בקוד של השליחת מייל, אתה צריך להכניס את הכתובת מייל שלך והסיסמא שלך, וגם את הכתובת מייל של המייל שאליו אתה רוצה שהמייל יישלח (זה יכול להיות אותו מייל שממנו נשלח).השינויים הם בשורות הבאות:
להכניס את הכתובת מייל שלך (במקום YourEmail@gmail.com) :.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "YourEmail@gmail.com"
את הסיסמא (במקום YourPasswoed) :
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "YourPasswoed"
את המייל של הנמען (במקום "To name SendTo@gmail.com" תכתוב פשוט את הכתובת מייל (מוקפת בגרשיים כמובן) :
msgOne.To = "To name <SendTo@gmail.com>"
את המייל שלך שוב (במקום Your Name YourEmail@gmail.com) :
msgOne.From = "Your Name <YourEmail@gmail.com>"
בהצלחה