| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Γεια σας... Θα ήθελα την βοήθειά σας, για άλλη μια φορά, σε κάτι που με ζορίζει. Σε μια έκθεση, στην οποία έχω κάνει ομαδοποίηση, έχω εισαγάγει ένα υπολογιζόμενο πεδίο =Άθροισμα([ΠΕΔΙΟ1]) με το ΠΕΔΙΟ1 να προέρχεται από ένα ερώτημα (Γενικά την έκθεση την στηρίζω σ' αυτό το ερώτημα) Αυτό που θέλω είναι, η έκθεση, να φιλτράρει την τιμή του υπολογιζόμενου πεδίου (που υπάρχει στην έκθεση-όχι στο ερώτημα) και να εμφανίζει τις εγγραφές για τις οποίες: πχ Άθροισμα([ΠΕΔΙΟ1])>=5 Θα σας παρακαλέσω η "λύση" να μην δωθεί χρησιμοποιώντας Συγκεντρωτικό ερώτημα αλλά μέσα απ' την έκθεση. Τελευταία επεξεργασία από το χρήστη Χρήστος : 16-10-16 στις 18:57. |
|
#2
| ||||
| ||||
|
Καλημέρα Χρήστο, αν κάνεις χρήση της πρότασης (στο συμβάν click ενός κουμπιού): Κώδικας: DoCmd.OpenReport "ΟνομαReport", acViewPreview, , "ΟνομαΠεδίου > = 5" Επιβάλλεται η έκθεση να "βλέπει" το πεδίο αυτό ! Με εκτίμηση Νίκος Δ. |
|
#3
| |||
| |||
|
Ανυπομονώ να το δω να δουλεύει! Θα σε ενημερώσω. Ευχαριστώ |
|
#4
| |||
| |||
|
Η έκθεση χρησιμοποιεί ένα υπολογιζόμενο πεδίο: =Άθροισμα([ΠΕΔΙΟ]). Το ΠΕΔΙΟ υπάρχει στο ερώτημα που τροφοδοτεί την έκθεση. Αυτή η έκφραση δεν θα δουλέψει? |
|
#5
| ||||
| ||||
|
....Και βέβαια θα δουλέψει! Όμως να προσέξεις το όνομα που έχεις δώσει στο πεδίο. Εσύ -αν θυμάμαι καλά, δίνεις λεζάντες στα πεδία... τα ξαναλέμε λοιπόν ! |
|
#6
| |||
| |||
|
Νίκο θέλω λίγη βοήθεια. Στο κουμπί (με το κλικ)έχω βάλει μια μακροεντολή που ανοίγει μια έκθεση εφαρμόζοντας το φίλτρο ="[SECTIONID]=" & [SECTIONID] Εμείς λοιπόν θέλουμε επιπλέον, να ενσωματώσουμε και τον κώδικα που πρότεινες. Πως θα το κάνω; Μπορείς μέσα στον κώδικά σου να ενσωματώσεις ΚΑΙ το φίλτρο μου; |
|
#7
| |||
| |||
|
Νίκο δεν δουλεύει. Πρόσεξέ με... Κάθε εγγραφή του ερωτήματος έχει ένα πεδίο. Στην έκθεση που είναι βασισμένη πάνω του ομαδοποιώ τις εγγραφές και βγάζω το άθροισμα του πεδίου. Το άθροισμα του πεδίου δεν υπάρχει λοιπόν στο ερώτημα. Είναι σαν να διαγράφω δηλαδή το πεδίο Teliko απ' το ερώτημά σου και να βάζω μόνο στην έκθεση το υπολογιζόμενο πεδίο =[timi]*[posotita] Τότε ο κώδικας δεν δουλεύει. Θα την βρούμε την λύση... :)) |
|
#8
| ||||
| ||||
|
Χρήστο, Την μακροεντολή με την οποία ανοίγεις την φόρμα φυσικά και πρέπει να την διώξεις, ως εξής: Έλα σε περιβάλλον σχεδίασης της φόρμας. Επέλεξε το κουμπί που ανοίγει το report. Με επιλεγμένο το κουμπί, πήγαινε ιδιότητες -καρτέλα Συμβάν - επέλεξε το συμβάν με το κλικ - πάτα στις τρεις (...) τελείες ή στο βελάκι για να βρεις την επιλογή [Διαδικασία Συμβάντος]. Θα μεταφερθείς πλέον σε περιβάλλον όπου γράφεται η VBA ! Ο κέρσορας θα αναβοσβήνει ανάμεσα σε : Κώδικας: Private Sub Command1_Click() | End Sub Κώδικας: DoCmd.OpenReport "Reportena", acViewPreview, , "[timi]*[posotita] >= 10 and [SECTIONID]=" & [SECTIONID] Τελευταία επεξεργασία από το χρήστη Meteora : 11-03-11 στις 06:36. |
|
#9
| |||
| |||
|
Καλησπέρα Η ΒΔ που επισυνάπτω δίνει απάντηση στο ερώτημα: Πώς θα φιλτράρουμε τις εγγραφές μιας ομαδοποιημένης έκθεσης, έτσι ώστε να εμφανίζονται μόνο οι ομάδες εγγραφών στις οποίες το άθροισμα των τιμών ενός πεδίου (για τις εγγραφές τις ομάδας) υπερβαίνει μία επιλεγμένη τιμή; 1) Η ΒΔ περιέχει τον πίνακα «tblValues», πεδία «fGroup» και «fValues». Οι τιμές του πεδίου «fGroup» χρησιμοποιούνται για την ομαδοποίηση των εγγραφών, και οι τιμές του «fValues» χρησιμοποιούνται για τη δημιουργία των αθροισμάτων. 2) Η έκθεση «rptTable» βασίζεται στον πίνακα «tblValues». Το φιλτράρισμα γίνεται με κατάλληλη αλλαγή της προέλευσης εγγραφών της έκθεσης, όπως φαίνεται στον παρακάτω κώδικα: Κώδικας: Private Sub Report_Open(Cancel As Integer)
Dim strSQL As String
Dim m As Double
m = 20 'μεταβλητή που καθορίζει το όριο του αθροίσματος
strSQL = "SELECT tblValues.* FROM tblValues" & _
" WHERE DSum(""fValue"",""tblValues"",""fGroup='"" & [fGroup] & ""'"")>" & m & ";"
Me.RecordSource = strSQL
End Sub
Κώδικας: Private Sub Report_Open(Cancel As Integer)
Dim m As Double
m = 20
Me.Filter = "[fSum]>" & m
Me.FilterOn = True
End Sub
Φιλικά/Γιώργος |
|
#10
| ||||
| ||||
|
Καλησπέρα! Έστω ότι το υπολογιζόμενο πεδίο έχει το όνομα SumOf_fValue Δείτε μια ακόμα πρόταση παρακάτω: Κώδικας: Option Explicit
Private f As Double 'Currency??
Const Minimum As Double = 5
Private Sub GroupHeader_Format(Cancel As Integer, FormatCount As Integer)
f = Nz(Me.SumOf_fValue)
If f <= Minimum Then Cancel = True
End Sub
Private Sub GroupDetail_Format(Cancel As Integer, FormatCount As Integer)
If f <= Minimum Then Cancel = True
End Sub
Private Sub GroupFooter_Format(Cancel As Integer, FormatCount As Integer)
If f <= Minimum Then Cancel = True
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Φίλτρο | manolis | Excel - Ερωτήσεις / Απαντήσεις | 9 | 07-05-14 16:47 |
| Φίλτρο σε έκθεση | alex | Access - Ερωτήσεις / Απαντήσεις | 2 | 21-10-12 06:39 |
| [ Εκθέσεις ] Φίλτρο σε Έκθεση | ΤΖΙΜΗΣ | Access - Ερωτήσεις / Απαντήσεις | 5 | 24-07-11 14:55 |
| Φίλτρο σε Έκθεση | Χρήστος | Access - Ερωτήσεις / Απαντήσεις | 21 | 16-05-11 07:55 |
| [ Εκθέσεις ] Δυναμικό φίλτρο σε έκθέση | fkonstas | Access - Ερωτήσεις / Απαντήσεις | 10 | 17-11-10 14:49 |
Η ώρα είναι 01:44.


Υβριδικός τρόπος

