Visual Basic за приложения (VBA) не е език за програмиране само за Microsoft Access 2003. Това е език за програмиране за всички приложни програми, които поддържат автоматизация. Автоматизацията (с главно A ) се отнася до способността на програма да се манипулира програмно или да се контролира автоматично с помощта на език за програмиране като VBA. Всички основни приложения в Microsoft Office, включително Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint и Microsoft Word поддържат автоматизация. Можете да напишете код за автоматично споделяне на данни между тях.
Термините Component Object Model ( COM ) и OLE автоматизация са по-стари термини за (но основно са синоними на) това, което в момента се нарича автоматизация.
Преди да започнете да пишете код
Преди да обменяте данни между Access и други програми в Microsoft Office Suite, имайте предвид, че писането на код за изпълнение на работата рядко се изисква. Можете да правите много от импортирането и експортирането на данни между приложенията на Microsoft Office, без изобщо да пишете код. Например, можете да извършите следните действия:
- Импортирайте и експортирайте данни с помощта на опции от менюто Access File.
- Обекти за достъп до имейл, като отчети, като изберете Изпрати до –> Получател на поща.
- Използвайте функцията OfficeLinks, за да изпращате обекти до други програми.
- Използвайте основни техники за изрязване и поставяне на Windows и OLE (обвързване и вграждане на обекти), за да копирате и свързвате данни между програмите.
- Обединете данни от таблици на Access в писма, етикети, пликове или други отчети на Microsoft Word, като използвате функцията Word Mail Merge. (Търсете в помощната система на Word за сливане. )
Ако просто искате да получите данни от Access към друга програма (или обратно), писането на код вероятно не е най-лесният подход. Всеки от предишните подходи е по-лесен от писането на персонализиран VBA код, за да свърши работата.
Разбира се, веднъж в пословична синя луна, се натъквате на ситуация, в която писането на VBA код е единственият или може би просто най-добрият начин да свършите работата. Тази статия ви показва някои основни понятия, които ще искате да разберете.
Зареждане на подходящите обектни модели
Обектният модел на Access предоставя средства за препращане към обекти по име, така че да можете да манипулирате тези обекти с помощта на VBA код. Всяка приложна програма на Office, която се излага на VBA, има обектен модел, точно както го прави Access. След като библиотеката с обекти на дадена приложна програма е налична, можете да използвате VBA, за да контролирате това приложение.
Един модел обект определя имената и организацията на обектите в заявлението. Библиотеката с обекти е действителният файл, който се съхранява на вашия твърд диск и дефинира този концептуален обектен модел.
Преди да напишете код за управление на външно приложение от Access, трябва да заредите съответната библиотека с обекти в диалоговия прозорец Референции в Access. Следвай тези стъпки:
1. Уверете се, че сте в редактора на Visual Basic.
Натиснете Alt+F11, ако сте в прозореца на програмата Access.
2. Изберете Tools –> References от менюто Visual Basic Editor.
Отваря се диалоговият прозорец Референции.
3. Превъртете през списъка Available References и изберете библиотеките с обекти за програмите, които искате да контролирате.
На фигура 1 избраните библиотеки с обекти са за Access, Excel, Outlook, PowerPoint и Word (наред с други).
Фигура 1: Няколко библиотеки с обекти, избрани в диалоговия прозорец Референции.
4. Щракнете върху OK.
Всички избрани библиотеки с обекти ще бъдат отворени и от този момент нататък вие имате достъп до всички техни обектни модели.
Разтоварване на библиотеки с обекти
Зареждането на повече библиотеки с обекти, отколкото е необходимо, е разточително, защото VBA програмите работят по-бавно. В реалния живот рядко се налага да избирате всички налични библиотеки с обекти (вижте фигура 1), освен ако наистина не възнамерявате да взаимодействате с всички тези програми от текущата база данни.
Можете да разтоварвате библиотеки толкова лесно, колкото ги зареждате. Отворете диалоговия прозорец Референции и премахнете отметката до всяка библиотека с обекти, която всъщност не възнамерявате да използвате.
Изследване на обектния модел на програмата
Браузърът на обекти в редактора на Visual Basic предоставя достъп до всички обектни модели, избрани в момента в диалоговия прозорец Референции. Всеки зареден обектен модел съдържа много обекти, класове, свойства и други. Но за автоматизацията вие основно искате да разгледате обекта на приложението на всяка програма. Например, обектът на приложението Access разкрива Access на други програми, които поддържат автоматизация. Обектът на приложението на Excel (съдържащ се в библиотеката с обекти на Excel) излага Excel на други програми за автоматизация и т.н.
За да отворите браузъра на обекти във VBA редактора, изберете Изглед –> Браузър на обекти или натиснете F2. За да получите помощ за елемент в браузъра на обекти, щракнете върху името му и след това щракнете върху бутона Помощ (?) в лентата с инструменти на браузъра на обекти.
Когато изберете от списъка Проект/Библиотека в браузъра на обекти и превъртите надолу списъка с класове в лявата колона, ще видите няколко обекта на приложение. Когато щракнете върху един от обектите на приложението, името на приложението се появява в долната част на диалоговия прозорец. Членовете на този обект на приложението се появяват в панела вдясно, както е показано на фигура 2.
Фигура 2: Браузърът на обекти след добавяне на множество библиотеки с обекти.
Задаване на препратки към други програми
Със заредени обективни модели сте готови да започнете да настройвате препратки към налични програми във VBA код. Първата стъпка е да използвате израз Dim, за да създадете обектна променлива, която се отнася до приложението, към което искате да се свържете, като използвате следния синтаксис:
Dim anyName като [Нова] програма. Приложение
В синтаксиса anyName е всяко име, което желаете, което да се използва във вашия код за препращане към приложението. Аргументът на програмата е официалното име на програмата за автоматизация. Новата ключова дума не е задължителна. Ако е включена, ключовата дума New отваря копие на приложението във фонов режим (не е задължително да се вижда на екрана), преди кодът да се изпълни.
Някои примери за изявления на Dim са следните:
Dim appExcel като ново Excel.Application
Dim appOutlook като ново Outlook.Application
Dim appPowerPoint като ново PowerPoint.Application
Dim appWord като ново Word.Application
Инструкцията Dim е валидна само ако е заредена съответната библиотека с обекти. Например, изразът Dim appWord As New Word.Application е неуспешен, ако библиотеката с обекти за Microsoft Word не е избрана в диалоговия прозорец Препратки.
Инструкциите Dim просто създават обектни променливи, които се отнасят до приложението от вашия код. За да осъществите действително връзката с обекта Application на приложението, трябва да зададете името на променливата на обекта на приложението. Синтаксисът е
Задайте objectVariable като CreateObject(“appName.Application”)
където objectVariable е същото като името, което сте посочили в израза Dim, а appName е името на приложната програма. Позовавайки се на по-ранните изрази Dim, операторите Set, които използвате за всяка дефинирана обектна променлива, са следните:
Задайте appExcel = CreateObject(“Excel.Application”)
Задайте appOutlook = CreateObject(“Outlook.Application”)
Задайте appPowerPoint = CreateObject(“PowerPoint.Application”)
Задайте appWord = CreateObject(“Word.Application”)
Всяко приложение в пакета Office има свой собствен обектен модел със свои собствени обекти и свойства, но основните идеи са едни и същи, независимо коя програма и обектен модел използвате.