ACC2002: Τρόπος χρήσης σύνθετων πλαισίων με παραμέτρους σε ένα έργο της Access

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 281870 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Αυτό το άρθρο, στο παρελθόν ήταν δημοσιευμένο με αριθμό GR281870
Μεσαίου επιπέδου: Απαιτεί βασικές γνώσεις μακροεντολών, κωδικοποίησης και διαλειτουργικότητας.

Αυτό το άρθρο ισχύει μόνο για ένα έργο της Microsoft Access (.adp).

Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Τα σύνθετα πλαίσια παρέχουν έναν καλό τρόπο παρουσίασης μιας λίστας επιλογών σε ένα χρήστη. Εάν η προέλευση γραμμής για ένα σύνθετο πλαίσιο πρέπει να βασιστεί σε ένα υποσύνολο εγγραφών από πίνακα ή ερώτημα, μπορείτε να προσθέσετε μια πρόταση WHERE, για να περιορίσετε τις επιλογές.

Το παράδειγμα σε αυτό το άρθρο προσθέτει ένα σύνθετο πλαίσιο στη φόρμα Customers στο δείγμα έργου NorthwindCS.adp. Το σύνθετο πλαίσιο παραθέτει σε λίστα τις παραγγελίες που γίνονται από τον τρέχοντα πελάτη. Όταν το επιλέξετε, ανοίγει η φόρμα Orders, παρουσιάζοντας τις λεπτομέρειες της επιλεγμένης παραγγελίας.

Μπορείτε να χρησιμοποιήσετε τέσσερις διαφορετικές μεθόδους, για να δημιουργήσετε μια λίστα παραγγελιών αντιστοίχισης που γίνονται από έναν πελάτη. Αυτές οι μέθοδοι χρησιμοποιούν ένα έργο της Access (.adp) με τον Microsoft SQL Server 2000 ως αρχείο προέλευσης δεδομένων. Αυτές οι μέθοδοι περιγράφονται στην επόμενη ενότητα.

Περισσότερες πληροφορίες

Δημιουργία του σύνθετου πλαισίου



Αυτή η ενότητα σάς δείχνει τον τρόπο δημιουργίας αρχικά ενός σύνθετου πλαισίου στη φόρμα Customers, το οποίο θα εμφανίζει μια λίστα των παραγγελιών του τρέχοντα πελάτη.
  1. Ανοίξτε τη φόρμα Customers σε προβολή σχεδίασης.
  2. Στην εργαλειοθήκη, κάντε κλικ στο κουμπί Control Wizards και κατόπιν προσθέστε ένα σύνθετο πλαίσιο στη φόρμα.
  3. Στην πρώτη σελίδα του οδηγού, επιλέξτε την αναζήτηση των τιμών σε πίνακα ή ερώτημα και κατόπιν κάντε κλικ στο κουμπί Next.
  4. Στη δεύτερη σελίδα του οδηγού, κάντε κλικ στον πίνακα Orders και κατόπιν κάντε κλικ στο κουμπί Next.
  5. Στην τρίτη σελίδα του οδηγού, προσθέστε τα στοιχεία OrderID, CustomerID και OrderDate ως πεδία στο σύνθετο πλαίσιο και κατόπιν κάντε κλικ στο κουμπί Next.
  6. Στην τέταρτη σελίδα του οδηγού, κάντε κλικ για να καταργήσετε την επιλογή Hide Key Column και κατόπιν συρρικνώστε τη στήλη CustomerID, έτσι ώστε να μην είναι ορατή. Κάντε κλικ στο κουμπί Next.
  7. Στην πέμπτη σελίδα του οδηγού, κάντε κλικ στο κουμπί Next ξανά, για να αποδεχτείτε το στοιχείο OrderID ως το πεδίο αποθήκευσης ή χρήσης της βάσης δεδομένων.
  8. Στην έκτη σελίδα του οδηγού, επιλέξτε τη διατήρηση της τιμής για μελλοντική χρήση και κατόπιν κάντε κλικ στο κουμπί Next.
  9. Στην τελευταία σελίδα του οδηγού, ονομάστε το σύνθετο πλαίσιο Select Order και κατόπιν κάντε κλικ στο κουμπί Finish.
  10. Ανοίξτε το φύλλο ιδιοτήτων για το σύνθετο πλαίσιο και κατόπιν αλλάξτε το όνομα του σύνθετου πλαισίου σε SelectOrderCombo.
  11. Ορίστε την ιδιότητα OnClick του σύνθετου πλαισίου στην ακόλουθη διαδικασία συμβάντος:
    Private Sub SelectOrderCombo_Click()
    On Error GoTo Err_SelectOrderCombo_Click
        Dim stDocName As String
        Dim stLinkCriteria As String
    
        stDocName = "Orders"
    
        stLinkCriteria = "[OrderID]=" & Me![SelectOrderCombo]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Exit_SelectOrderCombo_Click:
        Exit Sub
    
    Err_SelectOrderCombo_Click:
        MsgBox Err.Description
        Resume Exit_SelectOrderCombo_Click
    
    End Sub

Προσθήκη του κώδικα για ανανέωση του σύνθετου πλαισίου



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

Για τις μεθόδους 1 και 2, κάθε φορά που επιλέγετε το σύνθετο πλαίσιο, το συμβάν OnClick επαναφέρει την προέλευση γραμμής για το σύνθετο πλαίσιο, έτσι ώστε να εμφανίζει μόνο αυτές τις παραγγελίες που αντιστοιχούν στον τρέχοντα πελάτη.

ΣΗΜΕΙΩΣΗ : Επειδή το πεδίο CustomerID αποτελεί πεδίο κειμένου, τα μονά εισαγωγικά (') πρέπει να περικλείουν την αναφορά Forms. Για παράδειγμα, η πρόταση WHERE που δημιουργείται μετατρέπεται από:
WHERE CustomerID = '" & Forms![Customers]![CustomerID] & "'"
σε:
WHERE CustomerID = 'ALFKI'

Μέθοδος 1: Χρήση ειδικής επιλογής

Ορίστε την ιδιότητα OnEnter του σύνθετου πλαισίου στην ακόλουθη διαδικασία συμβάντος:
Me.SelectOrderCombo.RowSource = "SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate FROM Orders WHERE " _
     & "CustomerID = '" & Forms![Customers]![CustomerID] & "' ORDER BY OrderDate DESC"

Μέθοδος 2: Χρήση προβολής του SQL Server

  1. Δημιουργήστε μια νέα προβολή σε σχεδίαση προβολής και κατόπιν επιλέξτε τα πεδία OrderID, CustomerID και OrderDate από τον πίνακα Orders. Για να ταξινομήσετε τη λίστα παραγγελιών από την πιο πρόσφατη στην πιο παλιά, ορίστε το Sort Type για το πεδίο OrderDate σε Descending.
  2. Αποθηκεύστε την προβολή ως vwCustomerOrders.
  3. Ορίστε την ιδιότητα OnEnter του σύνθετου πλαισίου στην ακόλουθη διαδικασία συμβάντος:
    Me.SelectOrderCombo.RowSource = "SELECT * FROM vwCustomerOrders WHERE CustomerId = '" & Forms![Customers]![CustomerID] & "'"
Για τις μεθόδους 3 και 4, η μέθοδος Requery του σύνθετου πλαισίου καλείται με το συμβάν OnEnter, για να επανεκτελέσει μια αποθηκευμένη διαδικασία ή μια λειτουργία SQL , προκειμένου να επιστρέψει ταιριαστές εγγραφές. Σε αυτά τα παραδείγματα, η παράμετρος καθορίζεται ως στοιχείο ελέγχου στη φόρμα χρησιμοποιώντας το @ControlName στα κριτήρια. Η Access αξιολογεί αυτόματα τα κριτήρια και ζητάει τις ταιριαστές εγγραφές.

Στα ακόλουθα παραδείγματα, το σύνθετο πλαίσιο επιστέφει μια λίστα όλων των παραγγελιών για τον τρέχοντα πελάτη. Επειδή το πλαίσιο κειμένου CustomerID περιέχει το αναγνωριστικό του τρέχοντος πελάτη, μπορείτε να κάνετε απευθείας αναφορά του πλαισίου κειμένου CustomerID στην αποθηκευμένη διαδικασία ή στα κριτήρια λειτουργίας SQL.

Μέθοδος 3: Χρήση αποθηκευμένης διαδικασίας του SQL Server

  1. Δημιουργήστε μια νέα διαδικασία στη σχεδίαση γραφικών.
  2. Επιλέξτε τον πίνακα Orders και κατόπιν προσθέστε τα πεδία OrderID, CustomerID και OrderDate στην αποθηκευμένη διαδικασία.
  3. Πληκτρολογήστε @CustomerID ως τα κριτήρια για το πεδίο CustomerID και ορίστε φθίνουσα ταξινόμηση για το πεδίο OrderDate.
  4. Αποθηκεύστε την αποθηκευμένη διαδικασία ως spCustomerOrders και κατόπιν κλείστε την.
  5. Ορίστε την αποθηκευμένη διαδικασία spCustomerOrders ως την προέλευση γραμμής για το σύνθετο πλαίσιο.

    ΣΗΜΕΙΩΣΗ : Η ακόλουθη πρόταση SQL δημιουργείται και αποθηκεύεται από τη σχεδίαση αποθηκευμένων διαδικασιών:
    CREATE PROCEDURE dbo.spCustomerOrders
      (@CustomerID varchar(5))
      AS SELECT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC
  6. Ορίστε την ιδιότητα OnEnter του σύνθετου πλαισίου στην ακόλουθη διαδικασία συμβάντος:
    Me.SelectOrderCombo.Requery

Μέθοδος 4: Χρήση λειτουργίας του SQL Server 2000

Μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο μόνο εάν το έργο της Access χρησιμοποιεί τον SQL Server 2000 ή νεότερη έκδοση ως το αρχείο προέλευσης δεδομένων.
  1. Δημιουργήστε μια λειτουργία στη σχεδίαση γραφικών.
  2. Επιλέξτε τον πίνακα Orders και κατόπιν προσθέστε τα πεδία OrderID, CustomerID και OrderDate στην αποθηκευμένη διαδικασία.
  3. Πληκτρολογήστε @CustomerID ως τα κριτήρια για το πεδίο CustomerID και ορίστε φθίνουσα ταξινόμηση για το πεδίο OrderDate.
  4. Αποθηκεύστε τη λειτουργία ως fnCustomerOrders και κατόπιν κλείστε την.
  5. Ορίστε τη λειτουργία fnCustomerOrders ως την προέλευση γραμμής για το σύνθετο πλαίσιο.

    ΣΗΜΕΙΩΣΗ : Η ακόλουθη πρόταση SQL δημιουργείται και αποθηκεύεται από τη σχεδίαση αποθηκευμένων διαδικασιών:
    CREATE FUNCTION dbo.fnCustomerOrders
      (@CustomerID varchar(5))
      RETURNS TABLE
      RETURN ( SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC )
  6. Ορίστε την ιδιότητα OnEnter του σύνθετου πλαισίου στην ακόλουθη διαδικασία συμβάντος:
    Me.SelectOrderCombo.Requery
Για να ελέγξετε αυτές τις μεθόδους, ανοίξτε τη φόρμα και κατόπιν επιλέξτε από το σύνθετο πλαίσιο Select Order. Το συμβάν OnEnter επαναλαμβάνει το ερώτημα στο σύνθετο πλαίσιο, δημιουργώντας αυτόματα μια λίστα παραγγελιών για τον τρέχοντα πελάτη. Όταν επιλέγεται μια παραγγελία, εκτελείται το συμβάν OnClick του σύνθετου πλαισίου και ανοίγει η φόρμα Orders, εμφανίζοντας την επιλεγμένη παραγγελία.

Ιδιότητες

Αναγν. άρθρου: 281870 - Τελευταία αναθεώρηση: Παρασκευή, 7 Νοεμβρίου 2003 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2002 Standard Edition
Λέξεις-κλειδιά: 
kbhowto πίνακας προβολή ελέγχου αποθήκευσης server xp ιδιότητα sql στοιχείων φόρμα accesscs σχεδίασης διαδικασία accessxp orders officexp οδηγοί ερωτήματος onenter customers επανεκτέλεση KB281870

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com