'Добавляем поле "Категория" в семейство Fields таблицы
td. Fields. Append fld
'Создаем 4-ое поле с именем "Марка" и типом Текстовый
Set fld = td. CreateField ("Марка", dbText)
'Добавляем поле "Марка" в семейство Fields таблицы
td. Fields. Append fld
'Создаем 5-ое поле с именем "Модель" и типом Текстовый
Set fld = td. CreateField ("Модель", dbText)
'Добавляем поле "Модель" в семейство Fields таблицы
td. Fields. Append fld
'Создаем 6-ое поле с именем "Цвет" и типом Текстовый
Set fld = td. CreateField ("Цвет", dbText)
'Добавляем поле "Цвет" в семейство Fields таблицы
td. Fields. Append fld
'Создаем 7-ое поле с именем "Кол-во на складе" и типом Числовой
Set fld = td. CreateField ("Кол-во на складе", dbInteger)
'Добавляем поле "Кол-во на складе" в семейство Fields таблицы
td. Fields. Append fld
'Создаем 8-ое поле с именем "Цена" и типом Денежный
Set fld = td. CreateField ("Цена", dbCurrency)
'Добавляем поле "Цена" в семейство Fields таблицы
td. Fields. Append fld
'Добавляем таблицу к семейству TableDefs базы данных
base. TableDefs. Append td
'Обновляем количество объектов семейства TableDefs
base. TableDefs. Refresh
End Sub
Результат, выполнения программы представлен на рисунке 3.2.1.
Рисунок 3.2.1-таблица “TovaryDAO”
2) Создание таблицы в объектной модели ADO.
Public Sub Tovary_NewTable_ADO ()
'Соединение с текущей базой данных
Dim cnn As New ADODB. Connection
Dim cat As New ADOX. Catalog
'Используется объект модели объектов ACCESS
Set cnn = CurrentProject. Connection
cat. ActiveConnection = cnn
Debug. Print cat. Tables (0). Type
Dim Table
'Создаем таблицу в ADO
Set Table = CreateObject ("ADOX. Table")
'Название таблицы
Table. Name = "TovaryADO"
'Создаем столбец с именем "Код товара"
Table. Columns. Append "Код товара"
'Создаем столбец с именем "Товар"
Table. Columns. Append "Товар"
'Создаем столбец с именем "Категория"
Table. Columns. Append "Категория"
'Создаем столбец с именем "Марка"
Table. Columns. Append "Марка"
'Создаем столбец с именем "Модель"
Table. Columns. Append "Модель"
'Создаем столбец с именем "Цвет"
Table. Columns. Append "Цвет"
'Создаем столбец с именем "Кол-во на складе"
Table. Columns. Append "Кол-во на складе"
'Создаем столбец с именем "Цена,$"
Table. Columns. Append "Цена,$"
'Добавляем таблицу к семейству Tables
cat. Tables. Append Table
Set cat = Nothing
End Sub
Результат, выполнения программы представлен на рисунке 3.2.2.
Рисунок 3.2.2-таблица “TovaryADO”
3) Удаление таблиц в объектных моделях DAO.
Sub Del_table ()
' Удаление таблицы средствами DAO
Dim db As Database
'Устанавливаем ссылку на текущую базу данных
Set db = CurrentDb
db. TableDefs. Delete "TovaryDAO"
db. TableDefs. Refresh
'Освобождаем объектную переменную
Set db = Nothing
End Sub
В результате выполнения данного программного кода таблица "TovaryDAO" будет удалена.
4) Удаление таблиц в объектных моделях ADO.
Public Sub delete_ADO ()
'Удаление таблицы средствами ADO
'Объявляем объектные переменные Connection и Catalog для связи данных
Dim cnn As New ADODB. Connection
Dim cat As New ADOX. Catalog
'Устанавливаем ссылку на текущую базу данных, используя объект connection ADODB
Set cnn = CurrentProject. Connection
'присваиваем объекту cat наше соединение
cat. ActiveConnection = cnn
'удаляем таблицу TovaryADO
cat. Tables. Delete ("TovaryADO")
'закрываем соединение
Set cat. ActiveConnection = Nothing
'освобождаем переменную
Set cat = Nothing
End Sub
В результате выполнения данного программного кода таблица "TovaryADO" будет удалена.
5) Создание, изменение и выполнение запросов программными средствами
Public Sub CreateQueryDAO ()
Dim db As Database, qd As QueryDef, rs As DAO. Recordset
Set db = CurrentDb
'создаем новый запрос и сохраняем его в базе данных
Set qd = db. CreateQueryDef ("DAO-запрос (Цена >500)")
qd. SQL = "SELECT [Товар], [Категория], [Марка (производитель)], [Модель], [Цена,$] FROM [2_Товары] WHERE ([2_Товары]. [Цена,$]) >500"
'создаем набор записей на базе нового запроса
Set rs = qd. OpenRecordset (dbOpenDynaset)
Set rs = Nothing
End Sub
Результат выполнения запроса представлен на рисунке 3.2.3.
Рисунок 3.2.3-запрос, созданный программными средствами.
Рассмотрим разработка функций на VBA на примере создания диалогового окна для ввода имени и пароля. При создании форм и элементов управления Access устанавливает большинству свойств значения по умолчанию. Изменим значение свойства Модальное окно (Modal) формы в диалоговом окне Свойства (Properties). Для открытия формы как диалогового окна свойству Модальное окно необходимо присвоить значение Да (Yes) до открытия формы.
Первое свойство, которое мы изменим, - это Caption. Далее присвоим свойству ScroLLBars (Полосы прокрутки) значение 0, это означает, что на форме не будет полос прокрутки. Нам необходимо изменить внешний вид формы, чтобы она была как можно больше похожа на стандартные диалоговые окна Windows. Для этого изменим на противоположные значения по умолчанию значения следующих свойств: DividingLines (Разделительные линии), NavigationButtons (Кнопки перехода), RecordSelectors (Область выделения).
Существуют такие свойства формы, которые нельзя установить из диалогового окна Свойства - они изменяются только программно. Примером такого свойства является свойство Visible (Вывод на экран), которое использовали в приведенной ниже программе. У элементов управления тоже есть свойство Visible, но его значение можно изменять не только программно, но и из окна Свойства.
Создание формы ввод пароля
Private Sub cmdOk_Click ()
Dim strFrm As String, blnOk As Boolean
strFrm = "Ввод пароля"
If Forms (strFrm). txtName = "prise" And _
Forms (strFrm). txtPassword = "3331" Then
'Имя и пароль введены верно,
'закрываем диалоговое окно
DoCmd. Close acForm, strFrm
MsgBox "Добро пожаловать!", vbInformation _
, "Ввод пароля"
blnOk = True
Else
'Имя и пароль введены неверно,
'подготавливаем диалоговое окно к новому запросу
MsgBox "Имя или пароль введены неверно!", _
vbExclamation, "Ввод пароля"
blnOk = False
End If
strFrm = "Кнопочная форма"
If blnOk Then
'Дальнейшие действия
DoCmd. OpenForm strFrm,,,,, acDialog
End If
End Sub
Private Sub cmdCancel_Click ()
CloseCurrentDatabase
End Sub
Предварительно создадим само окно формы с соответствующими полями и кнопками. В итоге получим форму, представленную на рисунке 3.3.1.
Рисунок 3.3.1-окно формы ввода пароля.
Для облегчения доступа к таблицам, отчетам, запросам и т.д., а также наилучшего представления базы данных используют кнопочную форму. Создают её с помощью Конструктора форм. На ней создают кнопки, нажатию которых соответствует вызов различных процедур.
Создадим главную кнопочную форму "Кнопочная форма", которая будет содержать следующие кнопки: создание таблицы в объектных моделях DAO и ADO, удаление таблицы в объектных моделях DAO и ADO, создание запроса DAO. Главная кнопочная форма представлена на рисунке 3.4.1.
Рисунок 3.4.1-главная кнопочная форма.
Создадим макрос на выполнение запроса DAO. Для этого указываем макрокоманду открыть запрос, в окне аргументов макрокоманды указываем имя запроса "DAO-запрос (Цена >500)", режим "Таблица", режим данных "Только чтение". На рисунке 3.4 2 представлен макрос режиме конструктор.
Рисунок 3.4.2-макрос в режиме конструктора.
На рисунке 3.4.3 представлен результат выполнения макроса.
Рисунок 3.4.3-результат выполнения макроса.
Данная курсовая работа является примером использования интерфейсных средств СУБД MS Access 2003. В ней рассмотрены основные методы работы с объектами MS Access 2003: таблицы, запросы, формы, отчёты. Приобретены навыки по созданию, удалению, изменению таблиц, запросов в автоматическом режиме, а также с использованием языка программирования VBA.
Были созданы формы с запрограммированными элементами управления с целью облегчения доступа к данным, быстрого поиска и т.д.