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

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

  1. Назовите коллекцию, элемент которой создается методом Add в процедуре использования MS Query.

Коллекция QueryTables.

  1. Назовите имя свойства, которое содержит оператор Select при создании запроса.

Свойство CommandText.

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

Ложно. MS Query может работать практически со всеми современными базами данных.

  1. Истинно или ложно следующее утверждение: MS Query может извлекать данные одновременно из нескольких таблиц базы данных?

Истинно.

  1. Какое основное преимущество импортирования внешних данных с помощью MS Query?

То, что процесс импортирования можно записать с помощью макроса.

  1. Назовите четыре различных способа извлечения внешних данных в Excel.

1) MS Query (Запрос Microsoft); 2) ADO (ActiveX Dam Objects - Объекты данных ActiveX); 3) DAO (Data Access Objects - Объекты доступа к данным); 4) ODBC (Open Database Connectivity - Взаимодействие открытых баз данных)

Упражнение

Создайте копию процедуры ПримерMSQuery и назовите ее СортировкаДанных. Создайте экранную форму с четырьмя переключателями:

  • Код продукта

  • Марка

  • Цена

  • На складе

Измените процедуру СортировкаДанных таким образом, чтобы извлекаемые данные сортировались по тому столбцу, которому соответствует выбранный переключатель в экранной форме.

В область общих объявлений модуля поместите строку кода

Public sSortChoice As String

Код процедуры СортировкаДанных:

Sub СортировкаДанных()

 Dim sngPrice As Single

 Dim sMessege As String

 Worksheets.Add

 sMessege = "Цена должна быть больше чем"

 sngPrice = Application.InputBox(sMessege, "Ввод значения цены", _

  Type:=1)

 frmSort.Show

 With ActiveSheet.QueryTables.Add(Connection:=Array(Array("ODBC; _

  DSN=База данных MS Access;DBQ=c:\Program Files\ _

  Microsoft Office\Office\Samples\Борей; _

  DefaultDir=c:\Program Files\Microsoft "), _

  Array("Office\Office\Samples;DriverId=25;FIL=MS Access; _

  MaxBufferSize=2048;PageTimeout=5;")), _

  Destination:=Range("A1")).CommandText - Array("SELECT _

  Товары.КодТовара, Товары.Марка, Товары.Цена, _

  Товары.НаСкладе" & Chr(13) & "" & Chr(10) & "FROM _

  'c:\program Files\Microsoft Office\Office\Samples\

  Борей'.Товары Товары" & Chr(13) & "" & Chr(10) & "WHERE _

  (Товары.Марка>=" & sngPrice & ")" & Chr(13) "" _

  & Chr(10) & "ORDER BY Товары." & sSortChoice)

  .Name = "Запрос из База данных MS Access"

  .FieldNames = True

  .RowNumbers = False

  .FillAdjacentFormulas = False

  .PreserveFormatting = True

  .RefreshOnFileOpen = False

  .BackgroundQuery = True

  .RefreshStyle = xlInsertDeleteCells

  .SavePassword = True

  .SaveData = True

  .AdjustColumnWidth = True

  .RefreshPeriod = 0

  .PreserveColumnInfo = True

  .Refresh BackgroundQuery:=False

 End With

End Sub

Код, ассоциированный с экранной формой (в процедуре СортировкаДанных она названа frmSort):

Private Sub cmdCancel_Click()

 frmSort.Hide

 End

End Sub

Private Sub cmdOK_Click()

 If optProductID = True Then

  sSortChoice = "КодТовара"

 ElseIf optProduct.Name = True Then

  sSortChoice = "Марка"

 ElseIf optUnitPrice = True Then

  sSortChoice = "Цена"

 Else

  sSortChoice = "НаСкладе"

 End If

 frmSort.Hide

End Sub