Applies ToAccess για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Σημείωση: Η συνάρτηση, η μέθοδος, το αντικείμενο ή η ιδιότητα που περιγράφεται σε αυτό το θέμα είναι απενεργοποιημένη εάν η υπηρεσία παραστάσεων Microsoft Jet εκτελείται σε κατάσταση λειτουργίας φίλτρου, κάτι που αποτρέπει τον υπολογισμό πιθανώς μη ασφαλών παραστάσεων. Για περισσότερες πληροφορίες σχετικά με τη λειτουργία φίλτρου, κάντε αναζήτηση για "λειτουργία φίλτρου" στη Βοήθεια.

Επιστρέφει μια αναφορά σε ένα αντικείμενο που παρέχεται από ένα στοιχείο ActiveX.

Σύνταξη

GetObject([όνομα_διαδρομής ] [, τάξη ] )

Η σύνταξη της συνάρτησης GetObject περιλαμβάνει τα παρακάτω ορίσματα:

Όρισμα

Περιγραφή

Διαδρομή

Προαιρετικό. Μεταβλητή (Συμβολοσειρά). Η πλήρης διαδρομή και το όνομα του αρχείου που περιέχει το αντικείμενο προς ανάκτηση. Εάν παραλειφθεί το όνομα διαδρομής , απαιτείται κλάση .

κλάση

Προαιρετικό. Μεταβλητή (Συμβολοσειρά). Μια συμβολοσειρά που αντιπροσωπεύει το κλάση του αντικειμένου.

Η όρισμα τάξης χρησιμοποιεί το όνομα εφαρμογής σύνταξης.τύπος αντικειμένου και έχει τα εξής τμήματα:

Τμήμα

Περιγραφή

όνομα εφαρμογής

Υποχρεωτικό. Μεταβλητή (Συμβολοσειρά). Το όνομα της εφαρμογής που παρέχει το αντικείμενο.

Τύπος_αντικειμένου

Υποχρεωτικό. Μεταβλητή (Συμβολοσειρά). Ο τύπος ή η κλάση του αντικειμένου που θα δημιουργηθεί.

Παρατηρήσεις

Σημείωση: Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, επιλέξτε Αναφορά προγραμματιστών στην αναπτυσσόμενη λίστα δίπλα στην Αναζήτηση και πληκτρολογήστε έναν ή περισσότερους όρους στο πλαίσιο αναζήτησης.

Χρησιμοποιήστε τη συνάρτηση GetObject για να αποκτήσετε πρόσβαση σε ένα αντικείμενο ActiveX από ένα αρχείο και να αντιστοιχίσετε το αντικείμενο σε ένα μεταβλητή αντικειμένου. Χρησιμοποιήστε την πρόταση Set για να αντιστοιχίσετε το αντικείμενο που επιστρέφει το GetObject στη μεταβλητή αντικειμένου. Για παράδειγμα:

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

Όταν εκτελείται αυτός ο κώδικας, ξεκινά η εφαρμογή που σχετίζεται με το καθορισμένο όνομα διαδρομής και ενεργοποιείται το αντικείμενο στο καθορισμένο αρχείο.

Εάν το όνομα_διαδρομής είναι μια συμβολοσειρά μηδενικού μήκους (""), η συνάρτηση GetObject επιστρέφει μια νέα παρουσία αντικειμένου του καθορισμένου τύπου. Εάν παραλειφθεί το όρισμα pathname , η συνάρτηση GetObject επιστρέφει ένα ενεργό αντικείμενο του καθορισμένου τύπου τη συγκεκριμένη στιγμή. Εάν δεν υπάρχει αντικείμενο του καθορισμένου τύπου, προκύπτει σφάλμα.

Ορισμένες εφαρμογές σάς επιτρέπουν να ενεργοποιήσετε ένα τμήμα του αρχείου. Προσθέστε ένα θαυμαστικό (!) στο τέλος του ονόματος αρχείου και ακολουθήστε το με μια συμβολοσειρά που προσδιορίζει το τμήμα του αρχείου που θέλετε να ενεργοποιήσετε. Για πληροφορίες σχετικά με τον τρόπο δημιουργίας αυτής της συμβολοσειράς, ανατρέξτε στην τεκμηρίωση για την εφαρμογή που δημιούργησε το αντικείμενο.

Για παράδειγμα, σε μια εφαρμογή σχεδίασης μπορεί να έχετε πολλά επίπεδα σε ένα σχέδιο που είναι αποθηκευμένο σε ένα αρχείο. Μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα για να ενεργοποιήσετε ένα επίπεδο μέσα σε ένα σχέδιο που ονομάζεται SCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Εάν δεν καθορίσετε την κλάση του αντικειμένου, η Αυτοματοποίηση καθορίζει την εκκίνηση της εφαρμογής και το αντικείμενο προς ενεργοποίηση, με βάση το όνομα αρχείου που παρέχετε. Ορισμένα αρχεία, ωστόσο, ενδέχεται να υποστηρίζουν περισσότερες από μία κλάση αντικειμένων. Για παράδειγμα, ένα σχέδιο μπορεί να υποστηρίζει τρεις διαφορετικούς τύπους αντικειμένων: ένα αντικείμενο Application , ένα αντικείμενο Σχεδίασης και ένα αντικείμενο γραμμής εργαλείων , τα οποία αποτελούν μέρος του ίδιου αρχείου. Για να καθορίσετε ποιο αντικείμενο σε ένα αρχείο θέλετε να ενεργοποιήσετε, χρησιμοποιήστε το προαιρετικό όρισμα κλάσης . Για παράδειγμα:

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
    "FIGMENT.DRAWING")

Στο παράδειγμα, FIGMENT είναι το όνομα μιας εφαρμογής σχεδίου και DRAWING είναι ένας από τους τύπους αντικειμένων που υποστηρίζει.

Όταν ένα αντικείμενο ενεργοποιηθεί, το αναφέρετε με κώδικα χρησιμοποιώντας τη μεταβλητή αντικειμένου που ορίσατε. Στο προηγούμενο παράδειγμα, αποκτάτε πρόσβαση σε ιδιότητες και μεθόδους του νέου αντικειμένου χρησιμοποιώντας τη μεταβλητή αντικειμένου MyObject. Για παράδειγμα:

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

Σημείωση: Χρησιμοποιήστε τη συνάρτηση GetObject όταν υπάρχει μια τρέχουσα παρουσία του αντικειμένου ή εάν θέλετε να δημιουργήσετε το αντικείμενο με ένα αρχείο που έχει ήδη φορτωθεί. Εάν δεν υπάρχει τρέχουσα παρουσία και δεν θέλετε το αντικείμενο να ξεκινά με τη φόρτωση ενός αρχείου, χρησιμοποιήστε τη συνάρτηση CreateObject .

Εάν ένα αντικείμενο έχει καταχωρηθεί ως αντικείμενο μίας παρουσίας, δημιουργείται μόνο μία παρουσία του αντικειμένου, ανεξάρτητα από το πόσες φορές εκτελείται το CreateObject . Με ένα αντικείμενο μίας παρουσίας, το GetObject επιστρέφει πάντα την ίδια παρουσία όταν καλείται με τη σύνταξη συμβολοσειράς μηδενικού μήκους ("") και προκαλεί σφάλμα εάν παραλειφθεί το όρισμα pathname . Δεν μπορείτε να χρησιμοποιήσετε το GetObject για να λάβετε μια αναφορά σε μια τάξη που δημιουργήθηκε με τη Visual Basic.

Παράδειγμα

Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση GetObject για να κάνει αναφορά σε ένα συγκεκριμένο φύλλο εργασίας του Excel (MyXL). Χρησιμοποιεί την ιδιότητα Application του φύλλου εργασίας για να κάνει ορατό το Excel, να το κλείσει και ούτω καθεξής. Χρησιμοποιώντας δύο κλήσεις API, η διαδικασία DetectExcel Sub αναζητά το Excel και, εάν εκτελείται, το εισάγει στον Πίνακα αντικειμένων που εκτελείται. Η πρώτη κλήση στο GetObject προκαλεί σφάλμα εάν το Microsoft Excel δεν εκτελείται ήδη. Στο παράδειγμα, το σφάλμα προκαλεί τη ρύθμιση της σημαίας ExcelWasNotRunning σε Αληθές. Η δεύτερη κλήση στο GetObject καθορίζει ένα αρχείο που θα ανοίξει. Εάν το Excel δεν εκτελείται ήδη, η δεύτερη κλήση την ξεκινά και επιστρέφει μια αναφορά στο φύλλο εργασίας που αντιπροσωπεύεται από το καθορισμένο αρχείο, mytest.xls. Το αρχείο πρέπει να υπάρχει στην καθορισμένη θέση. διαφορετικά, δημιουργείται το σφάλμα Αυτοματοποίησης του σφάλματος Visual Basic. Στη συνέχεια, το παράδειγμα κώδικα κάνει ορατό τόσο το Excel όσο και το παράθυρο που περιέχει το καθορισμένο φύλλο εργασίας. Τέλος, εάν δεν υπήρχε προηγούμενη έκδοση του Excel που να εκτελείται, ο κώδικας χρησιμοποιεί τη μέθοδο Quit του αντικειμένου Application για να κλείσει το Excel. Εάν η εφαρμογή εκτελείται ήδη, δεν γίνεται καμία προσπάθεια να την κλείσετε. Η ίδια η αναφορά κυκλοφορεί ορίζοντας την σε Τίποτα.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
                    ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
                    ByVal wParam as Long, _
                    ByVal lParam As Long) As Long
Sub GetExcel()
    Dim MyXL As Object    ' Variable to hold reference
                                ' to Microsoft Excel.
    Dim ExcelWasNotRunning As Boolean    ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
    On Error Resume Next    ' Defer error trapping.
' GetObject function called without the first argument returns a 
' reference to an instance of the application. If the application isn't
' running, an error occurs.
    Set MyXL = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then ExcelWasNotRunning = True
    Err.Clear    ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
    DetectExcel
' Set the object variable to reference the file you want to see.
    Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
     Do manipulations of your  file here.
    ' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
    If ExcelWasNotRunning = True Then 
        MyXL.Application.Quit
    End IF
    Set MyXL = Nothing    ' Release reference to the
                                ' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
    Const WM_USER = 1024
    Dim hWnd As Long
' If Excel is running this API call returns its handle.
    hWnd = FindWindow("XLMAIN", 0)
    If hWnd = 0 Then    ' 0 means Excel not running.
        Exit Sub
    Else                
    ' Excel is running so use the SendMessage API 
    ' function to enter it in the Running Object Table.
        SendMessage hWnd, WM_USER + 18, 0, 0
    End If
End Sub

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

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

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.