Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Παράμετρος σε ερώτημα

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 24-08-11, 10:30
iondep
Guest
 
Μηνύματα: n/a
Προεπιλογή Παράμετρος σε ερώτημα

Καλημέρα σε όλους,

έχω έναν πίνακα που όλα τα πεδία του πλην ενός είναι της μορφής Ναι/Όχι.
Θέλω να δημιουργήσω ένα ερώτημα που να παίρνει από μία φόρμα το όνομα του πεδίου και να μου επιστρέφει τις εγγραφές που έχουν τιμή Ναι.
Δοκίμασα στη θέση του πεδίου να βάλω το Φίλτρο:[Forms]![Εκθέσεις]![Φίλτρο] και στα κριτήρια Αληθές αλλά δεν λειτουργεί.
Επίσης το Φίλτρο θα χρησιμοποιηθεί σε επόμενα ερωτήματα μέσα σε Iif.
Υπάρχει κάποια λύση γιατί διαφορετικά θα πρέπει να κάνω ένα ερώτημα για τον έλεγχο της τιμής του κάθε πεδίου.

Ευχαριστώ εκ των προτέρων,
Δέσποινα
Απάντηση με παράθεση
  #2  
Παλιά 24-08-11, 17:51
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα
Δέσποινα, στη ΒΔ που επισυνάπτω, παρουσιάζω δύο προσεγγίσεις του ζητούμενου.
Η ΒΔ περιέχει:
  • Τον πίνακα «Test» με πεδία: ID τύπου αυτόματης αρίθμησης, F1, F2, F3 τύπου Ναι/Όχι και F4 τύπου κειμένου.
  • Το ερώτημα «TestQry1».
  • Τη φόρμα «frmTest».
1. Λύση. Βασίζεται στο ερώτημα «TestQry1».
Αν στο πρώτο μέρος της φόρμας «frmTest» πληκτρολογήσουμε στο πλαίσιο κειμένου το όνομα του πεδίου (F1 ή F2 ή F3) στο οποίο θέλουμε να εφαρμοστεί το φίλτρο και πατήσουμε το διπλανό κουμπί θα ανοίξει το ερώτημα «TestQry1» και θα εμφανίσει τις εγγραφές του πίνακα «Test» κατάλληλα φιλτραρισμένες.
Παρακάτω δίνεται το ερώτημα «TestQry1» σε μορφή SQL:
Κώδικας:
SELECT Test.* FROM Test
WHERE (((Test.F1)=IIf([Forms]![frmTest]![txtF]="F1",-1,[F1])) AND ((Test.F2)=IIf([Forms]![frmTest]![txtF]="F2",-1,[F2])) 
AND ((Test.F3)=IIf([Forms]![frmTest]![txtF]="F3",-1,[F3])));
2. Λύση. Βασίζεται σε κώδικα.
Αν στο δεύτερο μέρος της φόρμας «frmTest» πληκτρολογήσουμε στο πλαίσιο κειμένου το όνομα του πεδίου (F1 ή F2ή F3) στο οποίο θέλουμε να εφαρμοστεί το φίλτρο και πατήσουμε το διπλανό κουμπί ο κώδικας που εκτελείται δημιουργεί αρχικά το ερώτημα «TestQry2» και στη συνέχεια το ανοίγει εμφανίζοντας τις εγγραφές του πίνακα «Test» κατάλληλα φιλτραρισμένες.
Ο κώδικας που εκτελείται φαίνεται παρακάτω.
Κώδικας:
Private Sub cmdOpenQrery2_Click()
    Dim strSQL As String, qry As DAO.QueryDef
    On Error Resume Next
    CurrentDb.QueryDefs.Delete "TestQry2"
    On Error GoTo 0
    strSQL = "SELECT * FROM Test Where [" & Me.txtF2 & "]=-1;"
    Set qry = CurrentDb.CreateQueryDef("TestQry2", strSQL)
    DoCmd.OpenQuery "TestQry2"
End Sub

Private Sub cmdOpenQuery_Click()
    DoCmd.OpenQuery "TestQry1"
End Sub
Δοκίμασε τις λύσεις και ενημέρωσέ μας, αν σε καλύπτουν.
Τα θέματα του φόρουμ τα παρακολουθούν (εκτός αυτών που τα έθεσαν) και άλλα μέλη.
Είναι σημαντικό συνεπώς, όταν παίρνουμε κάποια λύση, να ενημερώνουμε το φόρουμ αν μας κάλυψε, ώστε να γνωρίζουν και τα υπόλοιπα μέλη την αποτελεσματικότητά της.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb FilterByName.mdb (232,0 KB, 25 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Εκθέσεις ] Παράμετρος σε ερώτημα XristosM Access - Ερωτήσεις / Απαντήσεις 6 03-08-11 22:35


Η ώρα είναι 20:09.