ניווט

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

    עזרה באקסס - הפעלת שאילתה ע"י קוד VB

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

      שלום,
      אני באמצע פיתוח תוכנה באקסס,
      יש טופס שצריך לבצע פעולה (לאשר או לא לאשר תהליך) ע"פ תוצאת שאילתה שהגדרתי.
      ניסיתי לעשות את זה ע"י הגדרת ListBox שה- source שלו זו שאילתה שמוגדרת ב- VB, אבל לא הצלחתי להגיע לקוד שיתן לי את תוצאת השאילתה או לפחות כמה רשומות יש בתוצאה.
      מישהו יודע לעזור?? זה דחוף..
      תודה מראש

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

        @moshe11 יש לך קוד שתוכל להעתיק לכאן?

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

          @chagold !
          אני רוצה לקבל מהשאילתה תאריך אירוע ע"פ תנאים מסוימים
          ולהשוות אותו אח"כ לתאריך שמחושב בקוד,
          אין צורך להראות בטופס את תוצאת השאילתה אלא רק לפעול על פיה.
          קוד:5c3fb1ab-cb57-4493-8705-e754bc27e81b-image.png

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

            @moshe11 לפני שאני או מישהו מסתכל
            יש בתיבת התגובות כפתור בצורה הזו </>. תלחץ עליו ותעתיק את הקוד לבפנים.

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

              @moshe11 אמר בעזרה באקסס - הפעלת שאילתה ע"י קוד VB:

              או לפחות כמה רשומות יש בתוצאה

              אגב, תוכל לעשות שאילתת סיכום עם
              SELECT Sum(table.coloumn) AS Sum from table
              או ספירה
              SELECT count(table.coloumn) AS Sum from table

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

                @chagold אמר בעזרה באקסס - הפעלת שאילתה ע"י קוד VB:

                @moshe11 לפני שאני או מישהו מסתכל
                יש בתיבת התגובות כפתור בצורה הזו </>. תלחץ עליו ותעתיק את הקוד לבפנים.

                בהעתקה העברית הופכת לג'בריש אבל זה

                code:
                
                Private Sub ô÷åãä82_Click()
                
                   Dim available As Boolean
                   Dim FirstDate As Date
                   Dim eventData As String
                   Dim msg As String
                   eventData = Me.t_lohazi.Caption
                   FirstDate = eventData
                   available = True
                   msg = "available"
                   For i = -3 To 3
                   Dim dateToCheck As Date
                   Dim dateStr As String
                   dateToCheck = DateAdd("d", i, FirstDate)
                   dateStr = dateToCheck
                   Dim degem As Integer
                   degem = [Forms]![äæîðä çãùä]![ãâí_ðáçø]
                   Dim ctl As Control
                   Set ctl = Me.dateList
                   ctl.RowSourceType = "Table/Query"
                   ctl.RowSource = "SELECT [ëîåú äæîðåú ãâí ìàøåò].úàøéê_àøåò" & _
                                   "FROM [ëîåú äæîðåú ãâí ìàøåò]" & _
                                   "WHERE ((([ëîåú äæîðåú ãâí ìàøåò].úàøéê_àøåò) = '" & dateStr & "' ) AND (([ëîåú äæîðåú ãâí ìàøåò].÷åã_ôøéè)=[Forms]![äæîðä çãùä]![ãâí_ðáçø]))"
                   ctl.Requery
                   If ctl.ItemsSelected.count > 0 Then
                      available = False
                      msg = "not available"
                   End If
                   Next i
                   Me("ok").Enabled = available
                End Sub
                
                
                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • M
                  moshe11 @chagold נערך לאחרונה על ידי

                  @chagold
                  ואיך לגשת לתוצאה של שאילתה?
                  אני רוצה לגשת דרך הקוד, לא להציג בטופס

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

                    @moshe11 למספר הרשומות, תוכל להשתמש בפונקציה DCount:

                    
                    Dim SQL As String
                    SQL = "SELECT ........"
                    
                    Dim RecordsInQuery As Long
                    RecordsInQuery = DCount("*", SQL)
                    

                    עבור תוצאה מסויימת בשאילתא, תשתמש ב-DLookUp:

                    Dim SQL As String
                    SQL = "Select FirstName, LastName, BirthDate FROM Students"
                    Dim Result As Variant
                    Dim MyBirthDay As Date
                    Result = DLookup("BirthDate", SQL, "FirstName='OdedDvir')
                    If Not IsNull(Result) Then
                       MyBirthDay = CDate(Result)
                    Else
                       MsgBox("Sorry...")
                    End If
                    
                    תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • chagold
                      chagold @moshe11 נערך לאחרונה על ידי

                      @moshe11
                      תראה את זה

                      Sub SelectX2() 
                           
                              Dim dbs As Database, rst As Recordset 
                           
                              ' Modify this line to include the path to Northwind 
                              ' on your computer. 
                              Set dbs = OpenDatabase("Northwind.mdb") 
                           
                              ' Count the number of records with a PostalCode  
                              ' value and return the total in the Tally field. 
                              Set rst = dbs.OpenRecordset("SELECT Count " _ 
                                  & "(PostalCode) AS Tally FROM Customers;") 
                           
                              ' Populate the Recordset. 
                              rst.MoveLast 
                           
                              ' Call EnumFields to print the contents of  
                              ' the Recordset. Specify field width = 12. 
                              EnumFields rst, 12 
                           
                              dbs.Close 
                           
                          End Sub
                      

                      המקור מכאן. הוא עושה שאילתת ספירת שורות.

                      הוא בהתחלה מקבל טבלה וירטואלית המכילה את תוצאת השאילתא שלך, עם שורה אחת.

                      ואז הוא ניגש אל השורה האחרונה שלה עם rst.MoveLast

                      כמו"כ בשאילתא רגילה אתה יכול לקבל את התוכן ע"י גישה לשדות (=העמודות) באחת משתי האופציות דלהלן (הראשונה סימן קראה עם שם השדה, והשניה קריאה למספר העמודה)

                      strText = rs!AText
                      strText = rs.Fields(1)
                      
                      M תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • M
                        moshe11 @chagold נערך לאחרונה על ידי

                        @chagold אוקיי תודה לכולם הבעיה נפתרה!!
                        @אוריי התותח השקיע המון ועזר!

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