01. Dictionary - этот объект можно использовать для
создания массивов, даже для форм. Таким образом можно создать интерфейс,
который будет открывать 2 одинаковые формы, что в Access нереально
создать обычным способом.
|
'==============================================================
' Использование массива Dictionary для таблицы
Public Function funArrayDictionary() As String
Dim s As String, i As Integer, dbs As Database, rst As Recordset
Dim myArray, myBooks 'Переменные для массива
On Error GoTo 999 'Обработка ошибки
'1.Открытие таблицы
Set dbs = CurrentDb 'Выбираем базу данных
Set rst = dbs.OpenRecordset("SELECT * FROM [Мои книги]") 'Создаем запрос
If (rst.RecordCount = 0) Then 'Проверяем таблицу
rst.Close 'Закрываем запрос
MsgBox "Нет данных" 'Сообщаем об этом
Exit Function
End If
'2. Заполнение запроса
rst.MoveLast
rst.MoveFirst
'3. Заполнение массива
Set myArray = CreateObject("Scripting.Dictionary") 'Создаем массив
myArray.RemoveAll 'Удаляем все
For i = 0 To rst.RecordCount - 1
myArray.Add CStr(rst!Ключ), CStr(rst!Книга) 'Добавляем значение в массив
rst.MoveNext 'переходим на следующую запись
Next i
'4. Проверка массива
myBooks = myArray.Items 'Выбираем все книги
For i = 0 To myArray.Count - 1 'Создаем цикл
s = s & myBooks(i) & vbCrLf 'Создаем список книг
Next
funArrayDictionary = s 'Возвращаем список
'5. Конец примера
myArray.RemoveAll 'Удаляем массив
rst.Close
Set dbs = Nothing '!Внимание. Посылаем ... переменную!
Exit Function
999:
MsgBox Err.Description
Err.Clear
rst.Close
End Function | |