ניווט

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

    שאלה באקסס // שאילתא לפי שם כפתור

    תוכנה
    3
    37
    92
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • אוריי
      אוריי נערך לאחרונה על ידי אוריי

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

      מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • מלא
        מלא @אוריי נערך לאחרונה על ידי

        @אוריי
        תשתמש עם הערך caption של הלחצן.
        ככה strQuName = cmdButton1.caption
        המשתנה strQuName יקבל את הערך של שם הלחצן.

        אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • אוריי
          אוריי @מלא נערך לאחרונה על ידי

          @מלא
          אני אשמח להסבר יותר מפורט
          תודה

          מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • מלא
            מלא @אוריי נערך לאחרונה על ידי

            @אוריי
            איפה הבעיה שלך מתחילה,
            אם לא היו לך כמה לחצנים, רק לחצן ותיבת טקסט עם מספר המדף המבוקש,
            איך היית מסנן את השאילתה?

            אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • אוריי
              אוריי @מלא נערך לאחרונה על ידי

              @מלא
              לדוגמא יש לי טופס כזה
              b4783503-3a57-4b9f-b08f-2ceb32a2a63a-image.png
              כך שכל לחצן הוא מס' מדף ואני רוצה שבעת הלחיצה אני יקבל את כל הספרים הקיימים במדף הספציפי הזה
              עד כה יכולתי לעשות שאילתא על כל לחצן אבל אני רוצה לקצר את זה ע''י שהאקסס יזהה את שם הכפתור (לא הכיתוב) ולפי''ז הוא יפעיל את השאילתא כך שאפ שם המדף הוא 5 יביא לי את כל הספרים שיש במדף 5..

              מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • מלא
                מלא @אוריי נערך לאחרונה על ידי

                @אוריי
                כדי לקבל את שם הלחצן אתה יכול להשתמש עם activecontrol.name
                אם זה עדיין לא עוזר לך,
                עיין שוב בשאלה שלי למעלה.

                אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • אוריי
                  אוריי @מלא נערך לאחרונה על ידי אוריי

                  @מלא
                  הקישור לא עובד
                  2. סורי לא התעמקתי במה ששאלת
                  הייתי עושה טופס פשוט עם שאילתא כאשר השאילתא משתנה לפי מה שכתבתי בטופס בתיבת טקסט

                  מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • מלא
                    מלא @אוריי נערך לאחרונה על ידי מלא

                    @אוריי אמר בשאלה באקסס // שאילתא לפי שם כפתור:

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

                    מצויין.
                    מה שאני הבאתי לך ב2 התשובות, זה במקום התיבת טקסט,
                    תצטרך לשים אירוע בכל לצחן שיפעיל את הטופס,
                    ובמקום תיבת הטקסט תכניס את זה activecontrol.name [זה לא קישור, זה קוד]..

                    אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 2
                    • אוריי
                      אוריי @מלא נערך לאחרונה על ידי

                      @מלא
                      הרבה תודה עד כה
                      רק עוד פרט קטן כל פעם שאני לוחץ על פקד כאשר השאילתה פתוחה הוא לא מרענן את הדף
                      איזה פקודה אני צריך לכתוב כדי שירענן את השאילתה?
                      תודה מראש..

                      OdedDvir מלא 2 תגובות תגובה אחרונה תגובה ציטוט 0
                      • OdedDvir
                        OdedDvir @אוריי נערך לאחרונה על ידי

                        @אוריי תשתמש במתודה Requery

                        אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                        • אוריי
                          אוריי @OdedDvir נערך לאחרונה על ידי

                          @OdedDvir
                          לא עובד לי
                          יכול להיות אולי שלא כתבתי טוב
                          אני כתבתי כך

                          DoCmd.Requery "pp"
                          
                          OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • OdedDvir
                            OdedDvir @אוריי נערך לאחרונה על ידי

                            @אוריי אתה צריך לקרוא למתודה על האובייקט שאתה מעדכן
                            היכן מוצגת השאילתא? האם בטופס משנה או בטופס חדש?

                            אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                            • מלא
                              מלא @אוריי נערך לאחרונה על ידי

                              @אוריי
                              אם השאילתה מוצגת בטופס, אתה צריך לרענן את הטופס
                              (אם הוא בטופס משנה, מספיק לרענן רק את פקד הטופס משנה)

                              כדי לרענן טופס מתוך טופס אחר,
                              אתה כותב לו כך forms!שם_טופס(!שם_טופס_משנה).Requery

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

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • אוריי
                                אוריי @OdedDvir נערך לאחרונה על ידי אוריי

                                @OdedDvir @מלא
                                זה סה''כ שאילתה בתצוגת גיליון בלי שום טופס

                                OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • OdedDvir
                                  OdedDvir @אוריי נערך לאחרונה על ידי

                                  @אוריי תפרט בבקשה מה הקוד VBA שמציג את השאילתה (בארוע לחיצה על הפקד)

                                  אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                  • אוריי
                                    אוריי @OdedDvir נערך לאחרונה על ידי

                                    @OdedDvir

                                        Me!a = Me.ActiveControl.Name
                                        DoCmd.OpenQuery "qq", acViewNormal
                                        DoCmd.Requery "pp"
                                    
                                    OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • OdedDvir
                                      OdedDvir @אוריי נערך לאחרונה על ידי OdedDvir

                                      @אוריי תסגור את השאילתא הפתוחה ותפתח אותה מחדש

                                      docmd.Close acQuery, "qq"
                                      'תעדכן את השאילתא
                                      docmd.OpenQuery "qq"
                                      

                                      תנסה אולי הקוד הבא יעבוד (בלי לסגור ולפתוח)

                                      DoCmd.SelectObject acQuery, "qq"
                                      DoCmd.Requery
                                      
                                      אוריי 2 תגובות תגובה אחרונה תגובה ציטוט 1
                                      • אוריי
                                        אוריי @OdedDvir נערך לאחרונה על ידי

                                        @OdedDvir
                                        לא הבנתי מה אני אמור להחליף
                                        אתה יכול לכתוב לי את כל הפקודות מסודר?
                                        תודה

                                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • אוריי
                                          אוריי @OdedDvir נערך לאחרונה על ידי

                                          @OdedDvir
                                          תודה רבה
                                          הוספתי את זה

                                          DoCmd.SelectObject acQuery, "qq"
                                          DoCmd.Requery
                                          

                                          ועובד מצויין

                                          OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • OdedDvir
                                            OdedDvir @אוריי נערך לאחרונה על ידי

                                            @אוריי יפה. אבל נראה לי שאם השאילתה עדיין לא פתוחה תקבל שגיאה.. נכון?

                                            אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                            • אוריי
                                              אוריי @OdedDvir נערך לאחרונה על ידי

                                              @OdedDvir

                                              @OdedDvir אמר בשאלה באקסס // שאילתא לפי שם כפתור:

                                              @אוריי יפה. אבל נראה לי שאם השאילתה עדיין לא פתוחה תקבל שגיאה.. נכון?

                                              לא!
                                              זה עובד מצוין
                                              כי הוא מנסה לסגור ואם הוא סגור הוא עובר לפקודה הבאה שצריך לפתוח אותה

                                              רק עוד שאלה קטנה אם אני צריך לעשות את אותם הפעולות בטופס מה אני משנה ולמה?

                                              OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                              • OdedDvir
                                                OdedDvir @אוריי נערך לאחרונה על ידי

                                                @אוריי אמר בשאלה באקסס // שאילתא לפי שם כפתור:

                                                רק עוד שאלה קטנה אם אני צריך לעשות את אותם הפעולות בטופס מה אני משנה ולמה?

                                                אם זה הטופס הפעיל פשוט תכתוב

                                                Me.Requery
                                                

                                                אם זה טופס משנה של הטופס הפעיל, ושם הפקד של טופס המשנה הוא foo

                                                Me.foo.Form.Requery
                                                

                                                אם זה טופס אחר (שלא פעיל) אפשר באופן דומה לשאילתא

                                                DoCmd.SelectObject acForm, "MyFormName"
                                                DoCmd.Requery
                                                

                                                או

                                                Forms("MyFormName").Requery
                                                
                                                OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                • OdedDvir
                                                  OdedDvir @OdedDvir נערך לאחרונה על ידי OdedDvir

                                                  @OdedDvir אני מרשה לעצמי להזכיר לך שפתיחה של שאילתה באופן של DoCmd.OpenQuery עלולה לאפשר למשתמש לשנות נתונים בטבלאות, ואם זו לא ההתנהגות שאתה מחפש, תציין זאת במפורש בפתיחה:

                                                  DoCmd.OpenQuery "qq", acViewNormal, acReadOnly
                                                  
                                                  אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                  • אוריי
                                                    אוריי @OdedDvir נערך לאחרונה על ידי

                                                    @OdedDvir
                                                    תודה
                                                    בכל אופן זה לשימוש האישי שלי

                                                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                    • אוריי
                                                      אוריי נערך לאחרונה על ידי

                                                      יש לי פקד כרטיסיה כזה:
                                                      d13d6bf5-48ef-46d7-a390-0375e1d9846e-image.png
                                                      ואני רוצה שבלחיצה על פקד אחר אני יגיע לכרטיסיה ספציפית איך אני עושה את זה?
                                                      @OdedDvir
                                                      @מלא

                                                      OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                      • מלא
                                                        מלא נערך לאחרונה על ידי מלא

                                                        ככה Me.YourTabPage.SetFocus
                                                        שנה את YourTabPage לשם הדף.

                                                        מקור

                                                        אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                        • OdedDvir
                                                          OdedDvir @אוריי נערך לאחרונה על ידי

                                                          @אוריי באקסס ניתן לכתוב ולקרוא למשתנה עם שם הפקד של הכרטיסיה, על מנת לקבל את מספר הכרטיסת הפתוחה או לעבור לכרטסת מסויימת. הכרטיסיות ממוספרות עם בסיס 0, ז"א הכרטסת הראשונה מספרה 0, השנייה 1 וכו'.
                                                          ניתן לעבור אל כרטסת על ידי כתיבה למשתנה עם שם הפקד.
                                                          למשל כדי לעבור לכרטסת השלישית, נכתוב את המספר 2:

                                                          me.TabCtrName = 2 
                                                          

                                                          כדי לבדוק איזה כרטסת מוצגת כרגע, אפשר לקרוא את הערך בפקד

                                                          if me.TabCtrlName = 1 then ... 'אם הכרטסת השנייה פתוחה
                                                          
                                                          אוריי OdedDvir 2 תגובות תגובה אחרונה תגובה ציטוט 1
                                                          • אוריי
                                                            אוריי @מלא נערך לאחרונה על ידי

                                                            @מלא אמר בשאלה באקסס // שאילתא לפי שם כפתור:

                                                            Me.YourTabPage.SetFocus

                                                            מחזיר שגיאה
                                                            f4b1086e-c397-4fa0-a05b-7c98efe3e685-image.png

                                                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                            • אוריי
                                                              אוריי @OdedDvir נערך לאחרונה על ידי

                                                              @OdedDvir
                                                              מתנצל על ההפרעה אבל אשמח ליותר פירוט

                                                              OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                              • OdedDvir
                                                                OdedDvir @אוריי נערך לאחרונה על ידי

                                                                @אוריי מה שם פקד הכרטיסיה בטופס?

                                                                אוריי תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                                • 1
                                                                • 2
                                                                • 1 / 2
                                                                • First post
                                                                  Last post
                                                                בא תתחבר לדף היומי!