Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Ερωτήματα ] Πρόβλημα με ένα query. (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3076-problima-me-ena-query.html)

asterix 23-03-14 10:56

Πρόβλημα με ένα query.
 
Καλημέρα σε όλες/ους έχω ένα πρόβλημα με ένα query.
Έχω ένα πινάκα που έχω όλα τα στοιχεία αθλητών το ζητούμενο είναι ότι πρέπει να φτιάξω δυο κουμπιά τα όποια θα τρέχουν απο ένα διαφορετικο query και μετά το αποτέλεσμα θα εκτυπώνετε. Το πρόβλημα είναι πως θα κάνω τα παρακάτω γκρουπ. Δηλαδή δίπλα από τα κιλά να εμφανίζονται και τα ονόματα τον αθλητών.

Π.χ 2002 έως 2000

- 33 κιλά
Αντώνης τάδε
Νίκος Νικόπουλος
- 37
.
.
κ.λπ



Κουμπί α

Παίδων (2002-2001- 2000) -33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-45 κιλά, 45-49 κιλά, 49-53 κιλά, 53-57 κιλά, 57-61 κιλά, 61-65 κιλά, +65 κιλά.

Κορασίδων (2002-2001-2000) -29 κιλά, 29-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-44 κιλά, 44-47 κιλά, 47-51 κιλά, 51-55 κιλά, 55-59 κιλά, +59 κιλά.

Έφηβων (1999-1998- 1997) -45 κιλά, 45-48 κιλά, 48-51 κιλά. 51-55 κιλά, 55-59 κιλά, 59-63 κιλά, 63-68 κιλά, 68-73 κιλά, 73-78 κιλά, +78 κιλά.

Νεανίδες (1999- 1998-1997) -42 κιλά, 42-44 κιλά, 44-46 κιλά, 46-49 κιλά, 49-52 κιλά, 52-55 κιλά, 55-59 κιλά, 59-63 κιλά, 63-68 κιλά, +68 κιλά.



Κουμπί β


Πανπαίδων (2003-2004) -27 κιλά, 27-30 κιλά, 30-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-45 κιλά, 45-49 κιλά ,49-53 κιλά, 53-57 κιλά, +57 κιλά.

Πανκορασίδων (2003-2004) -27 κιλά, 27-30 κιλά, 30-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-45 κιλά, 45-49 κιλά ,49-53 κιλά, 53-57 κιλά, +57 κιλά

Πανπαίδων (2005-2006) -21 κιλά, 21-24 κιλά, 24-27 κιλά, 27-30 κιλά, 30-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-45 κιλά, 45-49 κιλά +49 κιλά.

Πανκορασίδων (2005-2006) -21 κιλά, 21-24 κιλά, 24-27 κιλά, 27-30 κιλά, 30-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-45 κιλά, 45-49 κιλά +49 κιλά

Πανπαίδων (2007-2008) -17 κιλά, 17-20 κιλά, 20-23 κιλά, 23-26 κιλά, 26-29 κιλά, 29-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-44 κιλά, +44 κιλά.

Πανκορασίδων (2007-2008) -17 κιλά, 17-20 κιλά, 20-23 κιλά, 23-26 κιλά, 26-29 κιλά, 29-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-44 κιλά, +44 κιλά.

Πανπαίδων (2009) -17 κιλά, 17-20 κιλά, 20-23 κιλά, 23-26 κιλά, 26-29 κιλά, 29-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-44 κιλά, +44 κιλά.

Πανκορασίδων (2009) -17 κιλά, 17-20 κιλά, 20-23 κιλά, 23-26 κιλά, 26-29 κιλά, 29-33 κιλά, 33-37 κιλά, 37-41 κιλά, 41-44 κιλά, +44 κιλά.

ευχαριστω

kper 25-03-14 08:20

Καλημερα, το πρωτο κουμπι θα καλει-τρεχει τις 4 πρώτες query και το αλλο κουμπι τις υπόλοιπες.

Στην πρωτη query του πρωτου κουμπιου εχουμε σαν υποχρεωτικο κριτηριο την κατηγορία (π.χ παιδων ) και πολλαπλο κριτηριο τα έτη (π.χ 2001, 2002) με επίσης πολλαπλο κριτηριο τα κιλα (33, 35 κλπ)

Όταν τρεχουμε την query φροντιζουμε αυτή να γραψει όλα τα δεδομενα σε ένα προσωρινο πινακα.

Ακριβως ετσι φτιαχνουμε και τις υπολοιπες query.

Οποτε μετα μπορούμε να παρουμε τα στοιχεια από τον προσωρινο πινακα να τα διαμορφώσουμε και να τα στειλουμε σε μια αναφορα (report) προς εμφανιση.

Την επομενη φορα που θα παμε να εκτελέσουμε το κουμπι Α, πρεπει πρωτα να σβησούμε όλα τα δεδομενα του προσωρινου πίνακα πριν στειλουμε καινουργια για αποφυγη λαθων.

asterix 25-03-14 08:34

Κωστα ευχαριστω για τον κοπο αλλα ειναι και το θεμα αγορια-κοριτσια δεν ειναι μονο η ηλικια αυτο ειναι που με μπερδευει

sarafis 25-03-14 13:40

Γιώργο καλημέρα
Στις εκθέσεις μπορείς να βάλεις περισσότερα πεδία ομαδοποίησης. Αν ανεβάσεις μια βάση με τον πίνακα που περιέχει τα δεδομένα θα πάρεις πιο αναλυτική απάντηση.

kapetang 25-03-14 15:08

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Η παρακάτω συνάρτηση, με βάση το φύλο των αθλητών, το έτος γέννησης και το βάρος τους, κατατάσσει τους αθλητές σε κατηγορίες σύμφωνα με το ζητούμενο.

Κώδικας:

Public Function CategoriesWeight(Sex As Variant, Etos As Variant, Baros As Variant) As String
'Sex = "A" (ελληνικό)για αγόρι και "Κ" για κορίτσι
'Etos = το έτος γέννησης
'Baros = το βάρος του αθλητή

    Dim i As Long, j As Long, c As Long
    Dim x(1 To 7) As Variant

    Sex = Nz(Sex, ""): Etos = Nz(Etos, 0): Baros = Nz(Baros, 0)


    x(1) = Array(33, 37, 41, 45, 49, 53, 57, 61, 65)
    x(2) = Array(29, 33, 37, 41, 44, 47, 51, 55, 59)
    x(3) = Array(45, 48, 51, 55, 59, 63, 68, 73, 78)
    x(4) = Array(42, 44, 46, 49, 52, 55, 59, 63, 68)
    '----------------------------------------------
    x(5) = Array(27, 30, 33, 37, 41, 45, 49, 53, 57)
    x(6) = Array(21, 24, 27, 30, 33, 37, 41, 45, 49)
    x(7) = Array(17, 20, 23, 26, 29, 33, 37, 41, 44)

    'Η διάκριση θα έπρεπε να γίνει με βάση την ηλικία του αθλητή.
    'Έγινε όμως με βάση το έτος γέννησης, σύμφωνα με το ζητούμενο

    Select Case Etos
    Case 2002, 2001, 2000
        If Sex = "Α" Then c = 1 Else c = 2
    Case 1999, 1998, 1997
        If Sex = "Α" Then c = 3 Else c = 4
    Case 2003, 2004
        c = 5
    Case 2005, 2006
        c = 6
    Case 2007, 2008, 2009
        c = 7
    Case Else
        Exit Function
    End Select

    For i = 0 To UBound(x(c))
        If Baros < x(c)(0) Then
            CategoriesWeight = "-" & x(c)(i)
            Exit Function
        ElseIf Baros >= x(c)(UBound(x(c))) Then
            CategoriesWeight = "+" & x(c)(UBound(x(c)))
        Else
            If Baros >= x(c)(i) And Baros < x(c)(i + 1) Then
                'Σύμφωνα με τα μαθηματικά το σύμβολο [ δείχνει ότι το κάτω όριο
                'περιλαμβάνεται, ενώ το ) δείχνει ότι το πάνω όριο δεν περιλαμβάνεται
                CategoriesWeight = "[" & CStr(x(c)(i)) & ", " & CStr(x(c)(i + 1)) & ")"
                Exit Function
            End If
        End If
    Next

End Function

Στη συνάρτηση:

1) Οι 12 περιπτώσεις, επειδή κάποιες ήταν όμοιες, περιορίστηκαν σε 7.

2) Στα διαστήματα των κατηγοριών η ελάχιστη τιμή περιλαμβάνεται, ενώ η μέγιστη όχι (ανήκει στην επόμενη κατηγορία).

Για παράδειγμα, αν 33<=Baros<37, ο αθλητής ανήκει στην κατηγορία: [33, 37).

Ενώ αν Baros=37 ανήκει στην κατηγορία: [37,41)

Στην επισυναπτόμενη ΒΔ, μπορούμε να δούμε ένα παράδειγμα χρήσης της συνάρτησης στο ερώτημα Categories

Φιλικά/Γιώργος

ΥΓ. Γιώργο, κάνε δοκιμές μήπως κάτι μου διέφυγε

asterix 27-03-14 07:09

Γιώργο ενα ευχαριστω ειναι λιγο απλα υποκλίνομαι


Η ώρα είναι 11:45.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2