Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
top3
Καλημέρα.Είχα θέσει ένα ερώτημα οποίο είχε απαντηθεί απο το φόρουμ. Το πρόβλημα μου είναι ότι δεν μπορώ να το εφαρμόσω σε μια καινούργιiα βάση. Θέλω τις 3 μεγαλύτερες τιμές απο το id για κάθε ημέρα,για όσες ημέρες υπάρχουν στον πίνακα. Αν μπορεί κάποιος να το φτιάξει? |
#2
| |||
| |||
Καλησπέρα Δημήτρη, πιστεύω ότι το παρακάτω ερώτημα θα σου λύση το πρόβλημα. Κώδικας: SELECT table1.* FROM table1 WHERE (((table1.id) In (Select Top 3 ID From table1 as P Where table1.fDate=P.fDate Order By P.ID DESC))) ORDER BY table1.fdate, table1.id DESC; Φιλικά/Γιώργος |
#3
| |||
| |||
top3
Με καλύπη απολύτως ευχαριστώ Γιώργο.
|
#4
| |||
| |||
top3
Κάτι που για μένα είναι πολύ δύσκολο.Αν γίνεται να επιλέγω πόσα θέλω απο κάθε ημέρα.Δηλαδή να προστεθεί στο ερώτημα κάτι σαν [δώσε πόσα παιχνίδια θέλεις για κάθε ημέρα] Προσπάθησα να το φτιάξω αλλά τζίφος. |
#5
| |||
| |||
Καλησπέρα/Καλημέρα Δημήτρη, αυτό που ζητάς απαιτεί η τιμή του TOP στο ένθετο ερώτημα να ορίζεται ως παράμετρος (πχ [Δώσε τον αριθμό των παιχνιδιών]). Στο σημείο αυτό όμως η access δεν επιτρέπει παράμετρο. Έτσι σκέφτηκα το ερώτημα να δημιουργείται με κώδικα. Στη φόρμα Form1, αν συμπληρώσουμε τον αριθμό των παιχνιδιών και πατήσουμε το κουμπί, θα δημιουργηθεί και θα ανοίξει το κατάλληλο ερώτημα. Αυτό γίνεται με τον ακόλουθο κώδικα που πρόσθεσα στη φόρμα. Κώδικας: rivate Sub cmdOpenQry_Click() Dim strSQL As String, qdf As DAO.QueryDef If IsNumeric(Me.txtNum) Then strSQL = "SELECT table1.* FROM table1 WHERE (((table1.id) In (Select Top " & _ Int(Me.txtNum) & " ID From table1 as P Where table1.fDate=P.fDate Order By P.ID DESC)))" & _ " ORDER BY table1.fdate, table1.id DESC;" With CurrentDb On Error Resume Next DoCmd.Close acQuery, "ShowTopXperDay", acSaveNo .QueryDefs.Delete "ShowTopXperDay" On Error GoTo 0 Set qdf = .CreateQueryDef("ShowTopXperDay", strSQL) End With DoCmd.OpenQuery qdf.Name End If End Sub |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Η ώρα είναι 08:15.