Funkcija CreateObject

Attiecas uz
Access pakalpojumam Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Piezīme

Šajā tēmā aprakstītā funkcija, metode, objekts vai rekvizīts ir atspējots, ja Microsoft Jet Expression Service darbojas smilškastes režīmā, kas neļauj novērtēt potenciāli nedrošas izteiksmes. Lai iegūtu papildinformāciju par smilškastes režīmu, meklējiet "smilškastes režīms" palīdzībā.

Izveido un atgriež atsauci uz ActiveX objektu.

Sintakse

CreateObject(klase [, servera_nosaukums] )

Funkcijas CreateObject sintaksē ir šādi argumenti:

Arguments Apraksts
klase Obligāts arguments. Variants (virkne). Izveidojamā objekta lietojumprogrammas nosaukums un klase.
servera nosaukums Neobligāts arguments. Variants (virkne). Tā tīkla servera nosaukums, kurā tiks izveidots objekts. Ja servera nosaukums ir tukša virkne (""), tiek izmantots lokālais dators.

    

Klasesarguments izmanto sintaksi appname.objecttype, un tam ir šādas daļas:

Daļa Apraksts
programmas nosaukums Obligāts arguments. Variants (virkne). Tās lietojumprogrammas nosaukums, kas nodrošina objektu.
objekta tips Obligāts arguments. Variants (virkne). Izveidojamā objekta tips vai klase.

    

Piezīmes

Katra lietojumprogramma, kas atbalsta automatizāciju, nodrošina vismaz viena tipa objektus. Piemēram, teksta apstrādes lietojumprogramma var nodrošināt lietojumprogrammas objektu, dokumenta objektu un rīkjoslas objektu.

Lai izveidotu ActiveX objektu, piešķiriet CreateObject atgriezto objektu objekta mainīgajam:

Piezīme

Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Lai iegūtu papildinformāciju par darbu ar VBA, nolaižamajā sarakstā atlasiet Uzziņas materiāli izstrādātājiem blakus meklēšanas lodziņam un ievadiet šajā lodziņā vienu vai vairākus vārdus.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Šajā piemērā mēs automatizēsim Excel izklājlapas objektu Access datu bāzē. Šis kods startē lietojumprogrammu, izveidojot objektu, šajā gadījumā Microsoft Excel izklājlapu. Kad objekts ir izveidots, jūs atsaucaties uz to kodā, izmantojot definēto objekta mainīgo. Šajā piemērā varat piekļūt jaunā objekta rekvizītiem un metodēm, izmantojot objekta mainīgo ExcelSheet, kā arī citus Excel objektus, tostarp Application objektu un Cells kolekciju.

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

Deklarējot objekta mainīgo ar klauzulu, As Object tiek izveidots mainīgais, kas var saturēt atsauci uz jebkura tipa objektu. Tomēr piekļuve objektam caur šo mainīgo ir vēlu ierobežota; T.i., saistīšana notiek programmas palaišanas laikā. Lai izveidotu objekta mainīgo, kas izraisa agrīnu saistīšanu, t.i., saistīšanu, kad programma tiek kompilēta, deklarējiet objekta mainīgo ar konkrētu klases ID. Piemēram, varat deklarēt un izveidot šādas Excel atsauces:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

Atsauce, izmantojot agrīnās robežas mainīgo, var nodrošināt labāku veiktspēju, bet tajā var būt tikai atsauce uz deklarācijā norādīto klasi.

Funkcijas CreateObject atgriezto objektu var nodot funkcijai, kas sagaida objektu kā argumentu. Piemēram, šis kods izveido un nodod atsauci uz Excel.Application objektu:

Call MySub (CreateObject("Excel.Application"))

Objektu var izveidot attālā tīkla datorā, nododot datora nosaukumu CreateObjectservername argumentam. Šis nosaukums ir tāds pats kā koplietojuma nosaukuma datora nosaukuma daļai: koplietojumam ar nosaukumu "\\MyServer\Public" servera nosaukums ir "Mans_serveris".

Piezīme

Papildinformāciju par to, kā padarīt lietojumprogrammu redzamu attālā tīkla datorā, skatiet COM dokumentācijā (skatiet Microsoft izstrādātāju tīkls). Iespējams, ka jums būs jāpievieno jūsu lietojumprogrammas reģistra atslēga.

Tālāk norādītais kods atgriež tādas Excel instances versijas numuru, kas darbojas attālā datorā ar nosaukumu MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Ja attālais serveris nepastāv vai nav pieejams, rodas izpildlaika kļūda.

Piezīme

Izmantojiet CreateObject, ja nav objekta pašreizējās instances. Ja objekta instance jau darbojas, tiek startēta jauna instance un izveidots norādītā tipa objekts. Lai izmantotu pašreizējo instanci vai startētu lietojumprogrammu un tai ielādētu failu, izmantojiet funkciju GetObject .

Ja objekts ir reģistrēts kā vienas instances objekts, tiek izveidota tikai viena objekta instance neatkarīgi no tā, cik reižu tiek izpildīts CreateObject .

Piemērs

Šajā piemērā izmantota funkcija CreateObject , lai iestatītu atsauci (

xlApp

) tiek pārsūtīts uz programmu Excel. Tas izmanto atsauci, lai piekļūtu Excel rekvizītam Redzams , un pēc tam izmanto Excel aizvēršanas metodi, lai to aizvērtu. Visbeidzot, pati atsauce tiek izlaista.

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
    ' You may have to set Visible property to True
    ' if you want to see the application.
xlApp.Visible = True
    ' Use xlApp to access Microsoft Excel's 
    ' other objects.
xlApp.Quit    ' When you finish, use the Quit method to close 
Set xlApp = Nothing    ' the application, then release the reference.