Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
26
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Ответы к 21-му часу Тесты

  1. Какой аргумент метода Open используется для указания объема, из которого извлекаются данные?

Аргумент Source.

  1. Истинно или ложно следующее утверждение: для организации доступа к внешним данным с помощью ADO достаточно создать соответствующую процедуру?

Ложно. Необходима ей с установить ссылку на библиотеку Microsoft ActiveX Data Objects 2.0 Library.

  1. Какой объект сохранят информацию о проблемах, возникших при использовании ADO?

Объект Error.

  1. Истинно или ложно следующее утверждение: с помощью ADO можно получить доступ только к базам данных Microsoft Access?

Ложно. С помощью ADO можно получить доступ практически ко всем современным базам данных.

  1. Какой объект представляет массив данных, извлеченный из внешнего источника с помощью ADO?

Объект Recordset.

  1. Как прервать соединение с внешним источником данных?

С помощью оператора Close.

  1. Назовите четыре этапа работы с ADO.

1) Установление соединения с источником данных; 2) Получение доступа к. данным; 3) Извлечение определенных записей из источника данных; 4) Закрытие соединения с источником данных.

Упражнение

Создайте экранную форму с тремя переключателями Заказы, Поставщики, Товары (соответствуют таблицам в базе данных Борей). Напишите процедуру, которая импортировала бы данные из таблицы базы данных Борей в соответствии с выбранным переключателем.

Задайте экранной форме имя frmPickData, с ней ассоциированы следующие процедуры:

Private Sub cmdCancel_Click()

 frmPickData.Hide

End Sub

Private Sub cmdOK_Click()

 If optSuppliers.Value = True Then

  sUserChoice = "Заказы"

 ElseIf optProducts.Value = True Then

  sUserChoice = "Товары"

 Else

  sUserChoice = "Поставщики"

 End If

 frmPickData.Hide

 ИмпортДанных

End Sub

Полный код остальных процедур (повторен код процедуры-функции Поворот из 21-го часа):

Public sUserChoice As String

Sub ИмпортДанных()

 Dim rsData As ADODB.Recordset

 Set rsData = New ADODB.Recordset

 rsData.Open Source:= sUserChoice, _

  activeconnection: = "Provider=Microsoft.Jet.OLEDB.4.0; _

  Data Source=C:\Program Files\Microsoft _

  Office\Office\Samples\Борей.mdb", _

  CursorType:=adOpenStatic, _

  LockType:=adLockOptimistic, _

  Options:=adCmdTable

 With Worksheets("Лист!")

  .Range("A1").CurrentRegion.Clear _

   Application.Intersect(.Range(.Rows(1), _

   .Rows(rsData.RecordCount)), _

   .Range(.Columns(1), .Columns(rsData.Fields.Count))). _

   Value = Поворот (rsData.GetRows _

   (rsData.RecordCount))

 End With

 rsData.Close

End Sub

Function Поворот (ByRef ArrayOriginal As Variant) As Variant

 Dim x As Integer

 Dim у As Integer

 Dim i As Integer

 Dim j As Integer

 Dim ArrayTranspose() As Variant

 x = Ubound(ArrayOriginal, 1)

 у = Ubound(ArrayOriginal, 2)

 ReDim ArrayTranspose(y, x)

 For i = 0 To x

  For j = 0 То у

   ArrayTranspose(j, i) = ArrayOriginal(i, j)

  Next

 Next

 Поворот = ArrayTranspose

End Function