Αναγν. άρθρου: 147739 - Τελευταία αναθεώρηση: Σάββατο, 18 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0

Τρόπος ανακτά ένα αντικείμενο QueryDef από MS Access χρησιμοποιώντας DAO

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Σε εκδόσεις του Microsoft Excel 97 και 7.0, μπορείτε να χρησιμοποιήσετε αντικείμενα πρόσβασης δεδομένων (DAO) στη Visual Basic for Applications για να ανακτήσετε τα αποτελέσματα του QueryDef από τη Microsoft Access. Αυτό το άρθρο επιδεικνύει τον τρόπο για να το κάνετε.

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

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.Αυτό το άρθρο χρησιμοποιεί τη βάση δεδομένων Northwind που περιλαμβάνεται στο Microsoft Office 95 Professional. Εάν επιλέξατε τις προεπιλεγμένες ρυθμίσεις, η βάση δεδομένων βρίσκεται στο φάκελο \Msoffice\Access\Samples. Εάν η βάση δεδομένων Northwind βρίσκεται σε διαφορετικό φάκελο, θα πρέπει να επεξεργαστείτε τον κώδικα που παρέχεται πριν από την εκτέλεσή του.

Στο Microsoft Office 97, η προεπιλεγμένη διαδρομή για τη βάση δεδομένων Northwind είναι \Program Files\Microsoft Office\Office\Samples\Northwind.mdb.

Ένα αντικείμενο QueryDef δημιουργείται στη Microsoft Access και αποθηκεύεται μαζί με το αρχείο βάσης δεδομένων. Αποτελείται από ένα ερώτημα και ενδέχεται να ή μπορεί να μην περιλαμβάνει κριτήρια.

ΣΗΜΕΙΩΣΗ: Εάν λαμβάνετε το μήνυμα λάθους "που ορίζεται από το χρήστη τύπο δεν έχει οριστεί", ενεργοποιήστε ένα φύλλο λειτουργικής μονάδας, κάντε κλικ στην εντολή "Αναφορές" στο μενού Εργαλεία και κάντε κλικ στο πλαίσιο ελέγχου βιβλιοθήκη αντικειμένων Microsoft DAO 3.0.

Ανάκτηση των αποτελεσμάτων του QueryDef από τη Microsoft Access είναι μια διαδικασία βήμα πέντε ως εξής:
  1. Για να δημιουργήσετε ένα αντικείμενο βάσης δεδομένων.
  2. Η δημιουργία ενός αντικειμένου QueryDef.
  3. Η δημιουργία ενός αντικειμένου Recordset.
  4. Μπορείτε να ανακτήσετε τις κεφαλίδες (αν θέλετε).
  5. Η ανάκτηση των δεδομένων από τον πίνακα.
Μετά την ανάκτηση των δεδομένων, θα πρέπει να κλείσετε όλα τα αντικείμενα που έχετε ανοίξει, εκδίδοντας εντολές .Close.
   Sub GetQueryDef()
       'This sub will get data from an Existing QueryDef in the Northwind
       'database and place the data on sheet2.

         Dim Db As Database
         Dim Qd As QueryDef
         Dim Rs As Recordset
         Dim Ws As Object
         Dim i As Integer
      Dim Path as String

      'Set the Path to the database. This line is useful because
      'if your database is in another location, you just need to change
      'it here and the Path Variable will be used throughout the code.
      '
      'If you're using Microsoft Office 97, the line should read:
      '
      'Path = "C:\Program Files\Microsoft
      'Office\Office\Samples\Northwind.mdb"
      '
      Path = "C:\Msoffice\Access\Samples\Northwind.mdb"

       'Set Ws
       Set Ws = Sheets("Sheet1")

       'This set of code will activate Sheet1 and clear any existing data.
       'After clearing the data, it will select cell A1.
       Ws.Activate
       Range("A1").Activate
       Selection.CurrentRegion.Select
       Selection.ClearContents
       Range("A1").Select

       'Set the Database and QueryDef. This QueryDef exists in the
       'database.
       Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True, _
         Exclusive:=False)
       Set Qd = Db.QueryDefs("Invoices")

       'Create a new Recordset from the Query based on the stored
       'QueryDef.
       Set Rs = Qd.OpenRecordset()

       'This loop will collect the field names and place them in the first
       'row starting at "A1."
       For i = 0 To Rs.Fields.Count - 1
           Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
       Next

      'This line simply sets the font to bold for the headers.
      Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold _
          =True

      'The next line will get the data from the recordset and copy it
      'into the Worksheet (Sheet1).

       Ws.Range("A2").CopyFromRecordset Rs

      'This next code set will just select the data region and auto-fit
      'the columns
       Sheets("Sheet1").Select
       Range("A1").Select
       Selection.CurrentRegion.Select
       Selection.Columns.AutoFit
       Range("A1").Select

       Qd.Close
       Rs.Close
       Db.Close

   End Sub
				

Αναφορές

Για περισσότερες πληροφορίες σχετικά με το αντικείμενο πρόσβασης δεδομένων, από την Επεξεργασία Visual Basic, κάντε κλικ στο Βοηθό του Office, πληκτρολογήστε "DAO", κάντε κλικ στο κουμπί Αναζήτηση και στη συνέχεια κάντε κλικ για να προβάλετε το "Data Επισκόπηση αντικείμενα της Access".

ΣΗΜΕΙΩΣΗ: Εάν ο Βοηθός είναι κρυμμένος, κάντε κλικ στο Βοηθό του Office κουμπί στη βασική γραμμή εργαλείων. Εάν ο Βοηθός δεν μπορεί να απαντήσει το ερώτημά σας, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
176476  (http://support.microsoft.com/kb/176476/EN-US/ ) OFF: Βοηθός του Office που δεν απάντηση ερωτήσεις της Visual Basic
Για περισσότερες πληροφορίες σχετικά με τα αντικείμενα πρόσβασης δεδομένων στο Microsoft Excel έκδοση 7.0, κάντε κλικ στην καρτέλα "Ευρετήριο" στη Βοήθεια για το Microsoft Excel και πληκτρολογήστε:
DAO

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Λέξεις-κλειδιά: 
kbdtacode kbhowto kbprogramming kbmt KB147739 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:147739  (http://support.microsoft.com/kb/147739/en-us/ )
Retired KB ArticleΑποποίηση ευθυνών για περιεχόμενο της Γνωσιακής Βάσης (KB) που έχει αποσυρθεί
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.