Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Забележка: Функцията, методът, обектът или свойството, описани в тази тема, се забраняват, ако услугата microsoft Jet Expression се изпълнява в ограничителен режим, което предотвратява оценяването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.

Създава и връща препратка към ActiveX обект.

Синтаксис

CreateObject ( клас [, име на сървър] )

Синтаксисът на функцията CreateObject има следните аргументи:

Аргумент

Описание

клас

Задължително. Variant (String). Името на приложението и класът на обекта, който трябва да се създаде.

име на сървър

Незадължително. Variant (String). Името на мрежовия сървър, където ще бъде създаден обектът. Ако servername е празен низ (""), се използва локалният компютър.

Класът аргумент използва името на приложението за синтаксис.objecttype и има следните части:

Част

Описание

име на приложение

Задължително. Variant (String). Името на приложението, предоставящо обекта.

тип на обект

Задължително. Variant (String). Типът или клас на обекта за създаване.

Забележки

Всяко приложение, което поддържа автоматизация, предоставя поне един тип обект. Например приложение за текстообработка може да предостави обект Application , обект Document и обект Toolbar .

За да създадете ActiveX обект, задайте обекта, върнат от CreateObject , на променлива за обект:

Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

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

В този пример ще автоматизираме обект на електронна таблица на Excel от база данни на Access. Този код стартира приложението, което създава обекта, в този случай електронна таблица на Microsoft Excel. След като обектът бъде създаден, трябва да го посочите с препратка в код с помощта на обектната променлива, която сте дефинирали. В следващия пример имате достъп до свойствата и методите на новия обект, като използвате обектната променлива, ExcelSheetи други обекти на Excel, включително Application обект и Cells колекция.

' 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

Декларирането на обектна променлива с клаузата As Object създава променлива, която може да съдържа препратка към произволен тип обект. Обаче достъпът до обекта чрез тази променлива е закъснял; т.е. обвързването се случва, когато вашата програма се изпълнява. За да създадете обектна променлива, която води до ранно обвързване, т.е. обвързване, когато програмата е компилирана, декларирайте обектната променлива с конкретен ИД на клас. Можете например да декларирате и да създадете следните препратки към Excel:

Dim xlApp As Excel.Application Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)

Препратката чрез рано обвързана променлива може да даде по-добра производителност, но може да съдържа само препратка към клас, зададен в декларация.

Можете да предадете обект, върнат от функцията CreateObject , на функция, очакваща обект като аргумент. Например следният код създава и предава препратка към обект excel.Application:

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

Можете да създадете обект на отдалечен мрежов компютър, като предадете името на компютъра към аргумента servername на CreateObject. Това име е същото като частта "Име на машина" на името на споделено име: за дял с име "\\MyServer\Public", името на сървъра е "MyServer".

Забележка:  Вижте документацията на COM (вж. Microsoft Developer Network) за допълнителна информация относно това дадено приложение да стане видимо на отдалечен компютър в мрежа. Може да се наложи да добавите ключ от системния регистър за вашето приложение.

Следният код връща номера на версията на екземпляр на Excel, който се изпълнява на отдалечен компютър с име MyServer:

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

Ако отдалеченият сървър не съществува или е недостъпен, ще възникне грешка по време на изпълнение.

Забележка:  Използвайте CreateObject, когато няма текущ екземпляр на обекта. Ако екземпляр на обекта вече се изпълнява, се стартира нов екземпляр и се създава обект от зададения тип. За да използвате текущия екземпляр или да стартирате приложението и да заредите файл, използвайте функцията GetObject .

Ако даден обект се е регистрирал като обект от един екземпляр, се създава само един екземпляр на обекта, без значение колко пъти се изпълнява CreateObject .

Пример

Този пример използва функцията CreateObject , за да зададе препратка (

xlApp

) в Excel. Използва препратката за достъп до свойството Visible на Excel и след това използва метода Quit на Excel, за да го затвори. Накрая, самата препратка се издава.

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.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.