Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7860

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

1. Создайте макрос для резервного копирования всех таблиц базы данных.

Sub Backup

 Table As TableDef)

On Error Resume Next

 acTable,

 &

 ,

 & "Backup",

acTable,

End Sub

Sub

 )

Dim I As Integer

Dim Table As TableDef
For Each Table In

Call

 Table )

Next

End Sub

2. Напишите фрагмент кода, позволяющего пользователю ввести наименование фай-

ла, данные из которого предполагается импортировать.

 =

 "Введите имя файла для

 "Имя фай-

ла",

 )

3. Напишите код, аналогичный описанному выше макросу, для создания резервной

копии.
См. процедуру Backup из упражнения 1.

 час. Как использовать готовые

решения

Тесты

1. Как называется функция, предназначенная для поиска подстрок?

2. В чем состоит принципиальное отличие модальных окон от остальных?

Открытое модальное окно препятствует использованию остальных окон приложе-
ния. Чтобы получить возможность продолжения работы, модальное окно необхо-
димо

3. Как должна выглядеть команда открытия текстового файла в режиме чтения?

Open Имя файла For Input As #НомерФайла

4. Какую функцию можно использовать для интерактивного ввода данных?

InputBox.

1. Напишите выражение для форматирования

 почтового индекса.

 PostalCodeVar,

 )

2. Постройте процедуру, добавляющую указанную строку в заданный файл.

Sub

 (ByVal FileName As

ByVal Text As String)

Dim Handle As Double
Handle = FreeFile

450 Приложение. Ответы


background image

Open

 For Append As ttHandle

Print

 Text

Close

End Sub

3. Создайте подпрограмму поиска заданного имени в двоичном файле, предполагая,

что при сохранении данных использовался тип

 и файл содержит более од-

ной записи.

Sub FindByName

 Name As String)

Dim Handle As Double

Handle = FreeFile

On Error GoTo FINALLY
Open

 For Binary Access Read As

 Mail As Email

Do  W h i l e Not

 Handle

Get

 , Mail

If

 = Name) Then

MsgBox "Найдено:

 &

 &

 &

Exit Do

End If

Loop

Close #Handle

End Sub

 -й час. От сложного к простому:

создание собственных типов данных

Тесты

1. Может ли пользовательский тип данных содержать переменную перечислимого типа?

Да. Типы данных, объявленные с помощью служебного слова Туре, могут содер-
жать экземпляры других пользовательских и перечислимых типов.

2. Для каких целей применяются пользовательские и перечислимые типы и в чем их

различие?
Типы позволяют собрать в единое целое ряд различных элементов данных, а пере-
числения используются для удобства представления ограниченных наборов цело-

численных значений.

3. Могут ли в объявлениях типов содержаться функции или процедуры?

Нет, но это возможно в конструкциях классов.

4. Допускаются ли в определениях типов члены-константы?

Нет. Постоянные значения не могут быть членами типа, определяемого пользова-

телем.

5. Позволяется ли включать в объявление типа ссылочную переменную?

Формально это не

 хотя и не является общеупотребительной практикой.

1. Создайте объявление типа для хранения данных об имени человека, его адресе и

номере телефона.

Приложение. Ответы 451


background image

Type Contact

Name As String

 As String

Address2 As String

City As String

State As String

PostalCode As String

End Type

2. Определите тип, одним из членов которого будет экземпляр типа, созданного в

предыдущем упражнении. Что может послужить причиной для осуществления по-

добных действий? Почему бы просто не исправить объявление исходного типа?

Type InternetContact

W h o As Contact

Email As String

End Type

Здесь мы создали новый тип, одним из членов которого является экземпляр ранее
построенного типа. При таком подходе нам не придется исправлять существующий
код, чтобы приспособить его к появлению в составе типа новой порции данных,
описывающей адрес электронной почты.

3. Объявите перечислимый тип, представляющий все сорта мороженого.

 IceCreamFlavors

Vanilla

Strawberry
Chocolate

Boisenberry

End Enum

 час.

 данными

переменного объема

Тесты

1. Как называется функция, позволяющая построить и вернуть массив?

Array.

2. Какая функция используется для инициализации элементов массива значением,

равноценным null?

Erase.

3. Действует ли функция Erase одинаково в отношении массивов данных различных

типов?

Нет. "Поведение" функции Erase зависит от типа массива. Так, например, эле-
менты массива объектов получают значение Nothing, а массиву типа Variant це-

ликом присваивается значение Empty.

4. Каким образом можно динамически, т.е. в ходе выполнения программы, изменить

размер массива?
Следует использовать команду повторного объявления массива с помощью служеб-
ного слова

 Dim.

5. Какой из алгоритмов сортировки более эффективен — метод

 выбора

или "быстрой сортировки"?

452 Приложение. Ответы


background image

Наиболее

 считается алгоритм "быстрой сортировки", правда,

при условии, если данные не упорядочены предварительно. В последнем случае
более высокую производительность может продемонстрировать алгоритм выбора.

1. Напишите выражение сравнения строк для использования в процедуре сортировки.

If

 > 0} Then

2. Исправьте текст процедуры Dump таким образом, чтобы вывод данных осуществ-

лялся в файл. Почему лучше выносить подобный код в отдельный именованный

блок (функцию или процедуру) а не вносить его непосредственно в то место про-

граммы, где он необходим?

Sub

 ) As Long)

Dim Handle As Double
Handle = FreeFile
Open

 For Output As

Dim

 As Variant

For Each Elem In Data

Print #Handle, Elem

Next Elem

Close

End Sub

3. Внесите изменения в текст процедуры BubbleSort, чтобы осуществить сортировку

данных в порядке их убывания. (Имейте в виду: в листинге 12.9 предполагается ва-

риант сортировки по возрастанию.)

Sub

 ByRef

 ) As Long )

Dim I As Integer, J As Integer

For I =

 Data ) To

 Data

 1

For J = I + 1 To

 Data )

If (Data(J) >

 Then

Call

 Data, I, J )

End If

Next J

Next I

End Sub

 час. Коллекции данных

Тесты

 Чем отличается метод от обычной функции (процедуры)?

Метод — обобщенное название функций и процедур, служащих членами класса.

2. Как называется метод, позволяющий добавлять в коллекцию новые элементы?

Эту функцию выполняет базовый метод класса коллекций, который носит назва-
ние

 Add.

3. Каково назначение конструкции присвоения переменной-объекту значения Noth-

ing?
Операция присвоения переменной-объекту класса предопределенного значения

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

Приложение. Ответы 453


background image

4. Обязательно ли перед операцией очистки памяти, отведенной

 коллекции,

удалять все его элементы?

Нет. Собственно, и саму операцию очистки выполнять необязательно, поскольку

компилятор

 снабжен специальными средствами

 сборки мусора.

5. Назовите способы циклического прохождения по элементам коллекции.

С этой целью могут применяться циклы For Each . . . Next и For

 Next,

последний из которых учитывает значение, хранящееся в Count.

1. Создайте коллекцию и добавьте в нее 10 целочисленных значений.

Sub

 )

Dim Integers As New Collection
Dim I As Integer

For

 I = 1 To 10

 Rnd * 10 ) )

Next I

Set Integers = Nothing

End Sub

2. Напишите процедуру,

 отобразить содержимое коллекции, построен-

ной при выполнении предыдущего упражнения, в окне Immediate.

Добавьте в код приведенной выше процедуры

 (непосредственно

перед строкой Set Integers = Nothing) следующий фрагмент:

For I = 1 То

Next

 I

3. Исправьте текст рассмотренной в главе 12 процедуры сортировки по методу

"пузырька" с учетом возможности обработки элементов коллекции.

Sub

 ByRef ACollection As Collection,

 I As Integer,

 J As Integer )

Dim Temp As Integer

Temp =
Call

 , , J )

Call

 J + 1 )

Call

 Temp, , I }

Call

 I + 1 )

End Sub

Sub

 Integers As Collection)

Dim I As Integer, J As Integer
For I = 1 To

 - 1

For J = I + 1 To

If

 >

 Then

Call

 I, J }

End If

Next J

Next I

End Sub

Процедура сортировки практически не изменилась. Реализация же процедуры Swap
в значительной степени зависит от типов данных — в нашем случае использованы

стандартные методы Add и Remove класса Collection.

454 Приложение. Ответы