Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Запуск других Windows-программСодержание книги
Поиск на нашем сайте
Как мне открыть Word (или Excel, или Блокнот (Notepad) или танцевальную видеоигру Dance Dance Revolution)? В язык Visual Basic включена функция shell, которая позволяет запускать другую программу. Для применения функции Shell необходимо задать полный путь, указывающий на файл программы. Вот приведен пример запуска Windows-программы Калькулятор: Shell "C:\Windows\calc.exe" Когда вы применяете функцию shell, ОС Windows запускает запрошенную программу, а ваш код продолжает выполняться. Но у вашего программного кода нет реальной возможности взаимодействовать с программой. Вы не можете заставить ее сделать что-либо или выяснить, что она закрыта. Shell кажется удобной функцией, но у нее есть существенная проблема. Для того чтобы использовать функцию Shell, нужно знать точное местонахождение программы. Вы не можете просто сказать: "Запусти Microsoft Word" или "Открой этот документ". Вместо этого вы должны глубоко зарыться в файловую систему жесткого диска, чтобы найти файл нужной программы (который обычно находится где-то в зоне вашего компьютера с именем Program Files). Хуже того, после того как вы заставили функцию Shell работать на вашем компьютере, нет никакой гарантии, что она заработает на какой-либо другой машине — в конце концов, та же программа может быть установлена где-то совсем в другом месте. И как с этим бороться? Можно воспользоваться гиперссылкой, которая запускает нужную программу автоматически, если по ссылке щелкнуть кнопкой мыши. Но некоторые программы, включая других членов семейства Microsoft Office, предлагают лучший вариант. Они предоставляют собственные объекты, которыми можно манипулировать в коде на языке Visual Basic. Благодаря этим объектам можно применять эти программы, не беспокоясь об их местонахождении. Вы конечно же можете делать с ними гораздо больше, задавая различные свойства и вызывая разнообразные методы. Можно заставить программу Word открыть документ, добавить в него некоторый текст, отправить 10 копий на принтер и затем завершить программу. Объекты, реализующие этот процесс, не рассматриваются в данной книге, но далее приведен очень простой пример, который запускает программу Word, выводит на экран окно программы и загружает в нее документ GothicWedding.doc: Dim Word As Object Set Word = CreateObject("Word.Application") Word.Visible = True Word.Documents.Open CurrentProject.Path & "\GothicWedding.doc" Если эта технология заинтересовала вас, обратитесь к справочной системе программы Word, из нее можно узнать гораздо больше об объектной модели Word. Другой полезный ресурс — Microsoft's Office Developer Center (Центр разработчиков Microsoft Office) на Web-сайте http://msdn.microsoft.com/office.
Объект DoCmd Объект DoCmd — единственный наиболее полезный объект в мире программирования Access. Он обеспечивает "покупку всего нужного в одном месте" для самых разнообразных задач, таких как открытие форм и отчетов, запуск других программ, поиск записей и выполнение макросов. В отличие от виденных вами ранее объектов, у объекта DoCmd нет никаких свойств. Вместо этого он состоит из методов, выполняющих разные действия. Если нужно открыть форму с именем ProductCatalog, можно использовать метод OpenForm следующим образом: DoCmd.OpenForm "ProductCatalog" Как большинство методов объекта DoCmd, OpenForm может использовать несколько необязательных параметров. Visual Basic подскажет, отобразив список возможных параметров в процессе ввода имени метода. Далее показан пример, в котором пропущены второй и третий параметры (обратите внимание на запятые без значений между ними), но задается фильтр в четвертом параметре и режим данных в пятом: DoCmd.OpenForm "ProductCatalog",,,"ID=5", acFormReadOnly Эта команда открывает форму ProductCatalog, применяет фильтр для вывода на экран одной записи с ID (Код), равным 5, и использует режим "только чтение" для запрета каких-либо изменений.
Примечание В данном примере используется константа acFormReadOnly. Константы — это числовые значения, которым присвоены более информативные имена. Таким образом вместо запоминания числа, обозначающего режим "только чтение", можно применять более осмысленную константу acFormReadOnly. Всегда, когда встречается переменная, начинающаяся с ас или vb, и вы ее не создавали сами, знайте, что это константа. Конечно, для того чтобы пользоваться константами, нужно все-таки знать их имена, но в этом может помочь средство IntelliSense, как показано на рис. 17.8. Рис. 17.8. Когда вы добираетесь до параметра режима данных, редактор Visual Basic выводит на экран список всех допустимых констант, которые можно использовать. Для того чтобы выяснить, что они означают (если это не очевидно), следует обратиться к справочной системе Access
Метод OpenForm может показаться знакомым, потому что вы уже видели такие же функции в макрокоманде ОткрытьФорму (OpenForm) (см. главу 15). В действительности все методы объекта DoCmd соотносятся с макрокомандами, которые вы изучали в главе15. В табл. 17.1 перечислены наиболее полезные методы. Таблица 17.1. Полезные методы объекта DoCmd
Таблица 17.1 (окончание)
Преобразование макроса в VB-код Если хотите узнать больше о языке Visual Basic и объекте DoCmd, можно взять существующий макрос и преобразовать его в чистый программный код, подпрограмму. Далее приведены необходимые действия. 1. В области переходов выберите макрос, который хотите использовать. 2. Выберите на ленте Работа с базами данных → Макрос → Преобразовать макросы (Database Tools → Macro → Convert Macros to Visual Basic). Можно также преобразовать внедренный в форму макрос, открыв форму и выбрав на ленте Работа с базами данных → Макрос →Преобразовать макросы формы (Database Tools → Macro → Convert Form's Macros to Visual Basic). На экране появится окно с двумя параметрами для выбора (рис. 17.9).
Рис. 17.9. Вы увидите это окно, если попросите программу Access преобразовать макрос FindHayEater 3. Если хотите добавить базовую обработку ошибок, убедитесь в том, что флажок Добавить программу обработки ошибок (Add error handling to generated functions) установлен. Немного обработки ошибок никогда не помешает. 4. Если хотите включить комментарии макроса в комментарии VB, убедитесь в том, что установлен флажок Добавить примечания макросов (Include macro comments). Если вы потратили время на добавление пояснительного текста, стоит сохранить его. 5. Щелкните мышью кнопку Преобразовать (Convert). Программа Access создаст новый модуль для преобразованного кода и даст ему имя, подобное имени Преобразованный макрос- [ИмяВашегоМакроса] (Converted Macro-[YourMacroName]). Внутри модуля Access создаст функцию с именем как у вашего макроса. Если преобразуется группа макросов (см. разд. "Группы макросов" главы 15), Access вставит по одной подпрограмме для каждого макроса в группе. После завершения процесса преобразования программа Access откроет ваш модуль в редакторе Visual Basic, чтобы вы могли просмотреть код. В следующем примере показан результат преобразования макроса из главы 15 (приведенного в разд. "Поиск записи" главы 15), который ищет определенный текст в таблице AnimalTypes: Function FindHayEater () On Error GoTo FindHayEater_Err DoCmd.OpenForm "AnimalTypes", acNormal, " ", " ",, acNormal DoCmd.GoToControl "Diet" DoCmd.FindRecord "=""hay""", acAnywhere, False,, _ False, acCurrent, False
FindHayEater_Exit: Exit Function FindHayEater_Err: MsgBox Error$ Resume FindHayEater_Exit End Function Вы заметите, что в преобразованном коде интенсивно используется объект DoCmd — действительно почти в каждой строке кода встречается объект DoCmd. Сначала он применяется в методе OpenForm для открытия формы, затем — в методе GoToControl для перехода в поле Diet и, наконец, он ищет первую запись, в которой встречается текст "hay". Эта строка выглядит причудливо, поскольку в ней удваиваются знаки кавычек (""). В языке Visual Basic знаки кавычек имеют особый смысл (они показывают, где начинается и заканчиваетсятекст). Если в текстовом фрагменте вы хотите на самом деле использовать кавычки, нужно поместить знаки кавычек дважды, одни за другими. Стрнно, но правильно. Завершается код процедурой обработки ошибок, названной FindHayEater__Err, которая просто сообщает о проблеме в окне сообщения и затем завершает работу.
Примечание Когда макрос преобразуется в программный код, программа Access всегда генерирует функцию, а не процедуру. Но функция не возвращает результат, т. к. этого не требуется. (По-видимому, Access действует таким образом, чтобы дать вам возможность позже воспользоваться возвращаемым результатом.)
|
|||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 246; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.100.82 (0.011 с.) |