דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
H

hsf

@hsf
אודות
פוסטים
28
נושאים
5
קבוצות
0
עוקבים
0
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • ייעול של פונקציות החיפוש
    H hsf

    @avr416

    @HSF
    כאן העלתי דוגמא לקוד באקסס, שנ"ל קצר יותר.

    כשבכל שדה בודק איזה סינון להחיל עליו.
    כשבסוף מצרף את כל הסינונים

    אני לא מבין VB וניסיתי להמיר אותו כאן אבל זה כתב שיש לו שגיאה ושהוא לא יכול להמיר את הקובץ 😢
    לא הבנתי אותך.. אתה בעצם מחפש לפי כל פרמטר בנפרד, ואח"כ מקבץ את כל התוצאות, ואז שוב מבצע סינון?? שהרי זה לא עוזר לי שיהיו לי את כל התוצאות שהרי אם הוא מזין נתונים בכמה מקומות אז הוא רוצה לסנן גם ע"פ הפרמטר הזה וגם הזה והזה.. אז בעצם מראש צריך להריץ שאילתא אחת שתסנן ע"פ כל הפרמטרים?? נמצא שצריך לכתוב שאילתא לכל שילוב אפשרי ולפי מה שהמשתמש מזין לדעת באיזה שאילתא לבחור..

    אני מכין מראש את נוסחת הסינון לכל פרמטר בנפרד, ומשתמש בפונקציית IF שאם לא בחר סינו יוסיף סינון "" ובמידה ובחר סינון אחר (כגון: שווה ל.. /החל מ /עד/בין/גדול/קטן, כל דבר לפי ענינו) מוסיף את הנוסחה למשתנה פנימי בהתאם לפרמטר שלו.
    ולבסוף אני מאחד את כל הסינונים.

    ולדוגמא הסינון של סכום מאוחסן במשתנה X
    הסינון של תאריך מאוחסן במשתנה XX
    בסוף אני עושה איחוד של X & XX ומוסיף אותו לשורת הסינון בשאילתה
    במידה ואין שום סינון הרי נוסף רק "" כאמור.

    פורסם במקור בפורום CODE613 ב09/08/2015 18:34 (+03:00)


  • יצירת דוחות
    H hsf

    נכון, וליצור דוח מותאם אישית כמו שטל למדן כתב, ולתת אפשרות לשמור את זה ברשימת הדוחות המוכנים

    פורסם במקור בפורום CODE613 ב07/07/2015 16:56 (+03:00)


  • יצירת דוחות
    H hsf

    בהתאם למה שהוצע לעיל, רציתי להרחיב מעט,
    מעט ארוך, אולי לא מתקדם,
    אבל זה מה שיש לי ממה שהכנתי לפני זמן רב.
    מצורף דוגמא - צילום מסך:

    דוגמא.png

    מצורף דוגמא - קוד לעדכון רשימה - תצוגת רשימה:

    Public Function Rahema1()
    'פותח טקסט
    Text1 = "SELECT  [רשימת הזמנות].[קוד הזמנה], [רשימת הזמנות].[" & [מיין לפי] & "] AS מיין, "
    
    'טקסט רשימה
    Text2 = " [רשימת הזמנות].[קוד הזמנה] AS הזמנה, [רשימת הזמנות].[קוד לקוח] AS לקוח, [רשימת הזמנות].פרטים, [רשימת הזמנות].כתובת, [רשימת הזמנות].קומה, [רשימת הזמנות].[תאריך הזמנה], [רשימת הזמנות].[תאריך הזמנה עברי], [רשימת הזמנות].[הוזמן לתאריך], [רשימת הזמנות].[הוזמן לתאריך עברי], [רשימת הזמנות].[סופק בתאריך], [רשימת הזמנות].[סופק בתאריך עברי], [רשימת הזמנות].לתשלום, [רשימת הזמנות].שולם, [רשימת הזמנות].הקפה, IIF([קוד לקוח], DLookUp('[הקפה]','[רשימת אנשי קשר]','[קוד]=' & [קוד לקוח])) AS [הקפת לקוח], [רשימת הזמנות].מצב, DCount('[שורה]','[פרטי הזמנה - רשימת הזמנה]','[קוד הזמנה]=' & [קוד הזמנה]) AS ש_הזמנה, DCount('[שורה]','[פרטי הזמנה - רשימת הספקה]','[קוד הזמנה]=' & [קוד הזמנה]) AS ש_הספקה FROM [רשימת הזמנות] "
    'סינון בסיס
    Text3 = "WHERE (((IIf([FORMS]![רשימת הזמנות]![הצג הכל]=-1,""הצג"",IIf([מצב]=""בהזמנה"" And [FORMS]![רשימת הזמנות]![בהזמנה]=-1,""הצג"",IIf([מצב]=""בוצע"" And [FORMS]![רשימת הזמנות]![בוצע]=-1,""הצג"",IIf([מצב]=""בוטל"" And [FORMS]![רשימת הזמנות]![בוטל]=-1,""הצג"",IIf([מצב]=""מושהה"" And [FORMS]![רשימת הזמנות]![מושהה]=-1,""הצג"",""""))))))=""הצג"")"
    'סינן תאריכים
    Text4 = IIf([סוג סינון] = "בין תאריכים", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "]) Between [forms]![רשימת הזמנות]![מתאריך] AND ([forms]![רשימת הזמנות]![עד תאריך])) ", IIf([סוג סינון] = "מתאריך", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "])>=[מתאריך])", IIf([סוג סינון] = "עד תאריך", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "]<=[עד תאריך])) ", ")")))
    
    
    'סינון סה לתשלום
        If ([סוג סינון סה לתשלום] = "ללא סינון") Then
            Text5 = ""
        End If
        If ([סוג סינון סה לתשלום] = "שווה ל...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) Like [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "גדול מ...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) > [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "קטן מ...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) < [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "בין...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) Between [FORMS]![רשימת הזמנות]![סה לתשלום-1] And [FORMS]![רשימת הזמנות]![סה לתשלום-2]) "
        End If
    
    'סינון סה שולם
        If ([סוג סינון סה שולם] = "ללא סינון") Then
            Text6 = ""
        End If
        If ([סוג סינון סה שולם] = "שווה ל...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) Like [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "גדול מ...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) > [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "קטן מ...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) < [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "בין...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) Between [FORMS]![רשימת הזמנות]![סה שולם-1] And [FORMS]![רשימת הזמנות]![סה שולם-2]) "
        End If
    
    'סינון הקפה
        If ([סוג סינון הקפה] = "ללא סינון") Then
            Text7 = ""
        End If
        If ([סוג סינון הקפה] = "שווה ל...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) Like [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "גדול מ...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) > [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "קטן מ...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) < [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "בין...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) Between [FORMS]![רשימת הזמנות]![הקפה-1] And [FORMS]![רשימת הזמנות]![הקפה-2]) "
        End If
    
    
    'מיון
    Text8 = "ORDER BY  [רשימת הזמנות].[" & [מיין לפי] & "]" & [מיון עולה יורד] & ";"
    
    'מחברת טקסט רשימה
    Text9 = Text1 & Text2 & Text3 & Text4 & Text5 & Text6 & Text7 & Text8
    
    'מעדכן רשימה
    [רשימת הזמנות].RowSource = Text9
    'מעדכן שדה איתור
    [שדה איתור].RowSource = Text9
            ' מרענן רשימה
            DoCmd.RunCommand acCmdRefreshPage
    
    End Function
    

    מצורף דוגמא - קוד ליצירת רשימה - עבור דוח:

    Public Function Rahema2()
    'פותח טקסט
    Text1 = "SELECT [רשימת הזמנות].[" & [מיין לפי] & "] AS מיין, "
    'טקסט רשימה
    Text2 = " [רשימת הזמנות].[קוד הזמנה] AS הזמנה, [רשימת הזמנות].[קוד לקוח] AS לקוח, [רשימת הזמנות].פרטים, [רשימת הזמנות].כתובת, [רשימת הזמנות].קומה, [רשימת הזמנות].[תאריך הזמנה], [רשימת הזמנות].[תאריך הזמנה עברי], [רשימת הזמנות].[הוזמן לתאריך], [רשימת הזמנות].[הוזמן לתאריך עברי], [רשימת הזמנות].[סופק בתאריך], [רשימת הזמנות].[סופק בתאריך עברי], [רשימת הזמנות].לתשלום, [רשימת הזמנות].שולם, [רשימת הזמנות].הקפה, [רשימת הזמנות].מצב  INTO [דוח הזמנות] FROM [רשימת הזמנות]  "
    
    'סינון בסיס
    Text3 = "WHERE (((IIf([FORMS]![רשימת הזמנות]![הצג הכל]=-1,""הצג"",IIf([מצב]=""בהזמנה"" And [FORMS]![רשימת הזמנות]![בהזמנה]=-1,""הצג"",IIf([מצב]=""בוצע"" And [FORMS]![רשימת הזמנות]![בוצע]=-1,""הצג"",IIf([מצב]=""בוטל"" And [FORMS]![רשימת הזמנות]![בוטל]=-1,""הצג"",IIf([מצב]=""מושהה"" And [FORMS]![רשימת הזמנות]![מושהה]=-1,""הצג"",""""))))))=""הצג"")"
    'סינן תאריכים
    Text4 = IIf([סוג סינון] = "בין תאריכים", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "]) Between [forms]![רשימת הזמנות]![מתאריך] AND ([forms]![רשימת הזמנות]![עד תאריך])) ", IIf([סוג סינון] = "מתאריך", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "])>=[מתאריך])", IIf([סוג סינון] = "עד תאריך", " AND ([רשימת הזמנות].[" & [אפשרות סינון] & "]<=[עד תאריך])) ", ")")))
    
    
    'סינון סה לתשלום
        If ([סוג סינון סה לתשלום] = "ללא סינון") Then
            Text5 = ""
        End If
        If ([סוג סינון סה לתשלום] = "שווה ל...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) Like [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "גדול מ...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) > [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "קטן מ...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) < [FORMS]![רשימת הזמנות]![סה לתשלום-1]) "
        End If
        If ([סוג סינון סה לתשלום] = "בין...") Then
            Text5 = " AND (([רשימת הזמנות].[לתשלום]) Between [FORMS]![רשימת הזמנות]![סה לתשלום-1] And [FORMS]![רשימת הזמנות]![סה לתשלום-2]) "
        End If
    
    'סינון סה שולם
        If ([סוג סינון סה שולם] = "ללא סינון") Then
            Text6 = ""
        End If
        If ([סוג סינון סה שולם] = "שווה ל...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) Like [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "גדול מ...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) > [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "קטן מ...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) < [FORMS]![רשימת הזמנות]![סה שולם-1]) "
        End If
        If ([סוג סינון סה שולם] = "בין...") Then
            Text6 = " AND (([רשימת הזמנות].[שולם]) Between [FORMS]![רשימת הזמנות]![סה שולם-1] And [FORMS]![רשימת הזמנות]![סה שולם-2]) "
        End If
    
    'סינון הקפה
        If ([סוג סינון הקפה] = "ללא סינון") Then
            Text7 = ""
        End If
        If ([סוג סינון הקפה] = "שווה ל...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) Like [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "גדול מ...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) > [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "קטן מ...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) < [FORMS]![רשימת הזמנות]![הקפה-1]) "
        End If
        If ([סוג סינון הקפה] = "בין...") Then
            Text7 = " AND (([רשימת הזמנות].[הקפה]) Between [FORMS]![רשימת הזמנות]![הקפה-1] And [FORMS]![רשימת הזמנות]![הקפה-2]) "
        End If
    
    
    
    'מיון
    Text8 = "ORDER BY  [רשימת הזמנות].[" & [מיין לפי] & "]" & [מיון עולה יורד] & ";"
    
    'מחברת טקסט רשימה
    Text9 = Text1 & Text2 & Text3 & Text4 & Text5 & Text6 & Text7 & Text8
        ' יוצר רשימת הזמנות
        DoCmd.RunSQL "" & Text9 & "", -1
    
    End Function
    

    בכל אופן שיהיה לך הרבה הצלחה

    פורסם במקור בפורום CODE613 ב07/07/2015 00:08 (+03:00)

  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום