עזרה בשאילתת הצלבות באקסס
-
שלום
יש לי שאילתת הצלבות ואני מעוניין שכאשר יפעלו אותה השאילתה תבקש פרמטר
[אם זה משנה אז השדה שעליו אני רוצה להחיל את הפרמטר הוא שדה תאריך והוא משמש ככותרת עמודה ואני מעונין שאני יוכל לשלוף נתונים לפי שנה כלומר שהשאילתה תבקש ממני
שנה ואחרי שאני יכתוב את השנה היא תציג לי את הנתונים של כל החודשים בשנה זו]
אבל כאשר כתבתי את הפרמטר כמו שכותבים בכל שאילתה בסוגריים בשורה של הקרטריונים השאילתה הוציאה הודעת שגיאה שהיא לא מכירה בביטוי הזה?וכן איך אני עושה על שאילתה זו דוח אם כל פעם יש לה עמודות אחרות אז מה אני כותב במקור פקד של העמודות בדוח ?
אשמח מאד אם מישהו יוכל לפתור לי את הדבר הזה
תודה
פורסם במקור בפורום CODE613 ב26/10/2015 14:14 (+02:00)
-
לגבי דוח אין אפשרות לבסס אותו על שאילתת הצלבות, תצטרך לעשות טבלה זמנית ולבצע שאילתת יצירת טבלה או באמצעות קוד.
למה א"א?
במיוחד אם הוא מציג את התוצאות לפי חודשים.
הוא יכול לייצר לעצמו דוח עם 12 עמודות, אפילו באשף שמבוסס על השאילתא, כי אני מורה לשאילתא לתת דווקא עמודות מסויימות עם שם מסויים (במקרה הזה - מס' החודש)TRANSFORM Sum(TblRec.TotalSum) AS SumמתוךTotalSum SELECT Year([RecDate]) AS Expr2 FROM TblRec WHERE (((Year([RecDate]))=[Write Year])) GROUP BY Year([RecDate]) PIVOT Format(Nz([RecDate],Date()),"m") In (1,2,3,4,5,6,7,8,9,10,11,12);
בדוגמא תראה שאפשר לעשות גם פרמטר (- אני עשיתי שהוא מבקש שנה - אפשר גם להפנות לתיבת טקסט וכו')
והנה דוגמא לדוח דינמי, שבו אתה לא יודע מה יהיו שמות השדות. (קחו בחשבון רק שהבאתי דוגמא שלי, שמביאה את רשימת המקצועות בכיתה מסויימת, ייתכן שתידרשו לעשות התאמות קטנות לצרכים שלכם)
כאן באמת צריך לעשות דוח עם X שדות מירבי, ולהציג את השדות לפי העניין. (לא הכי יעיל, אבל עובד יפה...)
בקוד של פתיחת הדוח:
Private Sub Report_Open(cancel As Integer) On Error Resume Next Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("SELECT * FROM TblSubject WHERE sActive=True And IDClsRoom=" & GetGIDClsRoom) rs.MoveLast rs.MoveFirst Dim i As Integer For i = 1 To rs.RecordCount If i > 45 Then msgok "לא ניתן להציג את כל הממקצועות": Exit Sub Me("t" & i).ControlSource = "[" & rs!SubjectName & "]" Me("l" & i).Caption = rs!SubjectName & "" ' Me("t" & i).Width = (Me("t" & i).Width * 42) / rs.RecordCount ' Me("l" & i).Width = Me("t" & i).Width rs.MoveNext Next End Sub
כמובן כמו שרואים בקוד, השמות של התיבות טקסט הם עם תחילית האות t ומספר רץ, והכותרות עם תחילית האות l
פורסם במקור בפורום CODE613 ב26/10/2015 21:44 (+02:00)
-
קודם כל תודה רבה רבה על הרצון לעזור
לא הבנתי בדיוק איך אני אמור לעשות זה
אם אפשר אשמח אם יהא קובץ דוגמא
ושוב תודה
פורסם במקור בפורום CODE613 ב27/10/2015 20:23 (+02:00)
-
מה לא הבנת? לגבי הדוגמא הראשונה או השנייה? (השנייה קצת מורכב מבחינתי להעלות את הדוגמא, כי אני אצטרך להעלות רבע תוכנה שלי לכאן כדי שהיא תעבוד)
נראה לי שאם תעלה דוגמא משלך של טבלה + שאילתת הצלבות שאתה מנסה לעשות, אני ישנה את מה שצריך ויעלה בחזרה וזה יהיה יותר יעיל מבחינתך.
פורסם במקור בפורום CODE613 ב27/10/2015 21:05 (+02:00)
-
אני צריך את הדוגמא הראשונה כי אני מעוניין שיהא כותרת עמודה, שמות החודשים וזה דבר קבוע, ורק את הנתונים אני רוצה לפי שנה.
ושוב תודה רבה
פורסם במקור בפורום CODE613 ב27/10/2015 21:23 (+02:00)
-
אם אין לך אפשרות לעשות קובץ דוגמא או לשפץ את הקובץ המצורף
אשמח מאד אם תוכל להסביר לי איך אני עושה את זה איפה אני אמור לרשום את הקוד שהבאת למעלה ואיזה שדות לשנות וכן איפה אני כותב את הפרמטר כדי שהוא יבקש שנהאשמח מאד אם תוכל לעזור לי זה חשוב לי מאד
תודה רבה
פורסם במקור בפורום CODE613 ב29/10/2015 18:30 (+02:00)
-
נכון אתה צודק לא אמורים לפתור לי כאן את הבעיה. אבל הנ"ל הציע שאם אני רוצה עזרה אני יכול לעלות את הקובץ שלי והוא יעזור לי
פורסם במקור בפורום CODE613 ב29/10/2015 19:10 (+02:00)
-
בבקשה.
שאילתת הצלבות.rar
רק הדוגמא הראשונה, לפי מה ששאלת נראה שזה מספיק.לגבי הדוגמא השנייה, תזכיר לי ב11/11, כי עד אז אני קצת עסוק.
פורסם במקור בפורום CODE613 ב30/10/2015 14:41 (+02:00)
-
בבקשה.
רק הדוגמא הראשונה, לפי מה ששאלת נראה שזה מספיק.
תודה רבה רבה זה בדיוק מה שחפשתי ורציתי שיהא בשאילתה
תודה תודה
פורסם במקור בפורום CODE613 ב02/11/2015 14:30 (+02:00)