Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet

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

Αυτό το άρθρο, στο παρελθόν ήταν δημοσιευμένο με αριθμό 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, , , stLinkCriteriaExit_SelectOrderCombo_Click:    Exit SubErr_SelectOrderCombo_Click:    MsgBox Err.Description    Resume Exit_SelectOrderCombo_ClickEnd 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, εμφανίζοντας την επιλεγμένη παραγγελία.
inf
Ιδιότητες

Αναγνωριστικό άρθρου: 281870 - Τελευταία αναθεώρηση: 11/07/2003 13:50:00 - Αναθεώρηση: 3.0

  • Microsoft Access 2002 Standard Edition
  • kbhowto πίνακας προβολή ελέγχου αποθήκευσης server xp ιδιότητα sql στοιχείων φόρμα accesscs σχεδίασης διαδικασία accessxp orders officexp οδηγοί ερωτήματος onenter customers επανεκτέλεση KB281870
Σχόλια