Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Microsoft Access. Создание базы данных



Microsoft Access. Создание базы данных
2015-12-24 17:27 noreply@blogger.com (Виктор Leadersoft)
В этой части статьи речь пойдет о создании базы данных средствами VBA. Использованы лекции по калькулятору. Сейчас восстанавливаем простые знания. далее будем их расширять, описывать формы, отчеты по реальным базам данных. Вся информация по программированию в Access доступна по этой ссылке: Книга по Access Новости можно прочитать и в Сообществе Google+ Проектирование с Microsoft Access+ Нас пока мало, всего трое, но мы "в тельняшках, победа будет за нами". Присоединяйтесь.

Лекция 2а. Создание базы данных

     И так после подготовительных действий, Вы можете приступить к созданию базы данных в файловой системе. Саму базу данных «Новый калькулятор.mdb» (переменная strMDB) создим программным методом, используя встроенный язык программирования Visual Basic Access, аналогично способу, указанному слева с помощью мастера Access.

 

Public Function funCreateDatabase(strMDB As String) As Boolean

Dim sFullPath As String
    On Error GoTo 999  'Назначаем переход по ошибке
    funCreateDatabase = False 'Возвращаем результат при ошибке
   
    sFullPath = appFolder & "\" & strMDB 'Полное имя файла
    If Dir(sFullPath) <> "" Then Kill sFullPath 'Уничтожаем старую базу данных
    DBEngine.CreateDatabase sFullPath, dbLangCyrillic 'Создаем базу данных
    appAccess.OpenCurrentDatabase sFullPath 'Открываем базу данных
    funInitReferences '<2> Настраиваем ссылки базы данных
    funInitStartupProperties '<2> Настраиваем стартовые свойства
   
    funCreateDatabase = True 'Возвращаем результат
    Exit Function ‘Выходим из программы
999:
    MsgBox Err.Description 'Сообщаем об ошибке
    Err.Clear 'Очищаем поток от ошибок

End Function



Лекция 2b. Закрытие базы данных

 


     

Если мы открыли базу данных, то ее необходимо закрыть. Это хороший способ программирования, хотя при закрытии окна Access (appAccess.Quit) база данных закрывается автоматически.  В этом примере база данных «Новый калькулятор.mdb» (переменная strMDB) будет закрыта, все ее объекты сохранены, а потом произойдет сжатие данных.

 

Public Function funCloseDatabase(strMDB As String) As Boolean

    On Error GoTo 999  'Назначаем переход по ошибке
    funCloseDatabase = False 'Возвращаем результат при ошибке
   
    appAccess.CloseCurrentDatabase 'Закрываем базу данных
    appAccess.Quit acQuitSaveAll 'Выходим c сохранением
    funCompactDatabase strMDB '<2> Сжимаем базу данных
   
    funCloseDatabase = True 'Возвращаем результат
    Exit Function 'Выходим из программы
999:
MsgBox Err.Description 'Сообщаем об ошибке
Err.Clear 'Очищаем поток от ошибок

End Function



Лекция 2с. Сжатие базы данных




     

При работе с базой данных Microsoft Access у Вас постепенно будет расти размер базы данных. Это связано с тем, что, удаляя элементы или записи «физически» из базы они не удаляются, уничтожаются только ссылки.  Для уменьшения размера базы данных, напишем программу для сжатия ее файла.
     В качестве имени файла, передаваемого в программу, введем переменную StrMDB.

 

Public Function funCompactDatabase(strMDB As String) As Boolean

Dim tmpMDB As String, fs, sFullPath As String
    On Error GoTo 999  'Назначаем переход по ошибке
    funCompactDatabase = False 'Возвращаем результат при ошибке
   
    sFullPath = appFolder & "\" & strMDB 'Устанавливаем полное имя файла
    Set fs = CreateObject("Scripting.FileSystemObject") 'Создаем файловую систему
    tmpMDB = fs.GetTempName 'Получаем временный файл
    DBEngine.CompactDatabase sFullPath, tmpMDB, dbLangCyrillic 'Сжимаем базу данных
    fs.CopyFile tmpMDB, sFullPath, True 'Переписываем файл
    Kill tmpMDB 'Удаляем временный файл
    Set fs = Nothing 'Уничтожаем объект файловой системы
   
    funCompactDatabase = True 'Возвращаем результат
    Exit Function 'Выходим из программы
999:
    MsgBox Err.Description 'Сообщаем об ошибке
    Err.Clear 'Очищаем поток от ошибок

End Function



Лекция 2d. Настройка ссылок




    

 При создании базы данных нам потребуются внешние функции, которые хранятся в специальных библиотеках, файлах с расширением DLL.
     В этом примере показано, как создать программу, которая будет автоматически подключать нужные Вам библиотеки, а в качестве шаблона ссылок использует текущую базу данных.
     Например, ссылка на библиотеку Office хранится в файле C:\Program Files\Microsoft OfficeOffice\MSO9.DLL

 

Public Function funInitReferences()

Dim sFullPath As String, ref As Reference
    On Error GoTo 999  'Назначаем переход по ошибке
   
    With appAccess 'Выбираем базу данных
        For Each ref In .References
            If ref.BuiltIn = False Then _
                .References.Remove ref 'Удаляем лишние ссылки
        Next
    End With

    sFullPath = References("Office").FullPath
    appAccess.References.AddFromFile (sFullPath) 'Устанавливаем Office
    sFullPath = References("DAO").FullPath
    appAccess.References.AddFromFile (sFullPath) 'Устанавливаем DAO
   
    Exit Function 'Выходим из программы
999:
    MsgBox Err.Description 'Сообщаем об ошибке
    Err.Clear 'Очищаем поток от ошибок

End Function



Лекция 2е. Настройка запуска




    

 Когда Вы открываете базу данных созданную начинающим специалистом с помощью мастеров Access, то Вам сразу «бросается в глаза» некачественный интерфейс (лишние кнопки, меню, окна, разбросанные по экрану), который и дает Вам общую оценку его работе.
     В этом примере давайте настроим базу данных так, чтобы в ней был начальный «приятный» интерфейс, а именно дадим базе данных заголовок, иконку, погасим ненужные окна и меню.
     Совет. Изучите внимательно настройки базы данных в справочной системе Microsoft Access, введите их в свои программы, и тогда программное обеспечение, разрабатываемое Вами, будет иметь больший успех и уважение у пользователей.

 

Public Function funInitStartupProperties()

        '<2> Изменяем заголовок

    dbChangeProperty "AppTitle", DB_Text, "Калькулятор, Версия 1.0”

        '<2> Изменяем иконку

    dbChangeProperty "AppIcon", DB_Text, appFolder & "\Рисунки\Лидер.ico"

   

    dbChangeProperty "StartupShowDBWindow", 1, False '<2> Гасим окно БД

    dbChangeProperty "StartupShowStatusBar", 1, False '<2> Гасим сообщения

    dbChangeProperty "AllowBuiltinToolbars", 1, True '<2> Разрешаем меню

    dbChangeProperty "AllowFullMenus", 1, True '<2> Разрешаем меню

    dbChangeProperty "AllowToolbarChanges", 1, True '<2> Разрешаем изменения

End Function



Лекция 2f. Свойство базы данных




    

 В предыдущем разделе мы меняли заголовок базы данных, а здесь показан пример, как изменить свойство базы данных, используя встроенные функции Access.
     Дополнение. Созданные свойства в отличие от переменных хранятся в базе данных постоянно, и Вам достаточно назначить их один раз, чтобы потом они уже использовались автоматически при открытии базы данных.
     Например, если Вы погасили в каком-то сеансе с базой данных ее основное окно (StartupShowDBWindow = False), то в следующих сеансах работы оно не будет отображаться на экране.
'Название
'   Изменить/создать свойство базы данных
'Параметры:
'   strName - имя свойства (Description, Format ...)
'   varType - тип свойства (dbText, dbLong ...)
'   varValue - значение свойства
'

Function dbChangeProperty(strName As String, varType As Variant, varValue As Variant) As Boolean

Dim prp As Variant, dbs As Database
   
    On Error GoTo 999 'Назначаем переход по ошибке
    dbChangeProperty = False 'Возвращаем результат при ошибке
   
    Set dbs = appAccess.CurrentDb 'Выбираем базу
    dbs.Properties(strName) = varValue 'Присваиваем значение
   
    dbChangeProperty = True 'Возвращаем результат
    Exit Function 'Выходим из программы
999:
    If Err = 3270 Then  'Свойство не найдено
        Set prp = dbs.CreateProperty(strName, varType, varValue) 'Создаем свойство
        dbs.Properties.Append prp 'Добавляем свойство
        Err.Clear 'Очищаем поток от ошибки
        Resume Next 'Возвращаемся к следующему оператору
    End If
    Err.Clear 'Очищаем поток от незнакомой ошибки

End Function



Лекция 2g. Проверка знаний




     Теперь Вы научились создавать базу данных не с помощью мастера Access, а профессионально с помощью языка программирования Microsoft Visual Basic Access.

     Ваш результат Вы можете увидеть, нажав кнопку [Проверка N2] внизу экрана. Перед Вами отобразиться база данных, в которой пока не будет ни одного элемента.
     На следующем этапе программирования мы будем создавать таблицу «Калькулятор» с полями и необходимыми свойствами.

     Итак, если Вы не желаете, посмотреть на пустую базу данных, нажмите кнопку Вперед>


В избранное