Принципы построения больших и малых судов в данной статье не рассматриваются. Часто используемые процедуры при разработке БД
Так сказать, микросервис =о) Итак, начиная новую базу я руководствуюсь несколькими правилами. Главное, я не сажусь писать базу пока не сложится некий самодостаточный образ =o). Принципы построения больших и малых судов в данной статье не рассматриваются. Но. Человек, начинающий работу над базой данных, общеизвестно, должен иметь маленькую голову, большую задницу и коротко остриженные ногти на правой руке. Так вот речь - о ногтях или, конкретнее, о заточке инструмента. Поехали... 1. Создаю дополнительную панель управления * Это помогает быстро переключаться между окнами объектов базы данных и для отладки (Эт-то как кому удобно...) 2.В течение разработки базы никогда не устанавливаю другую строку меню, кроме основной. * При открытии формы можно назначить меню с которым она будет работать. А при отладке достаточно переключиться на окно базы данных, чтобы появилась главная менюшка. Таким образом половое влечение к кнопкам Ctrl+F11 у меня явно поуменьшилось =o) 3. Копирую в базу модуль с названием QuickService * В этом модуле все основные операции, которые приходится выполнять практически в любой базе А вот здесь поподробнее. QuickService Первая процедура это определение пути к базе данных. Придумано все до меня. Функция Subdir возвращает путь к базе данных. Function Subdir() As String 'Возвращает путь каталога БД Dim CurDB As String CurDB = CurrentDb.Name Subdir = Left(CurDB, Len(CurDB) - Len(Dir$(CurDB))) 'MsgBox Subdir End Function 'Sample: Kill Subdir & "txtFile.txt" | Следующие процедуры закрывают все формы Function CloseAllForm() 'закрыть все формы Do While Forms.Count > 0 If IsFOpen(Forms(0).Name) Then DoCmd.Close acForm, Forms(0).Name Loop End Function Function IsFOpen(MyFormName) As Boolean 'открыта ли форма Dim frm As Form IsFOpen = False For Each frm In Forms If frm.Name = MyFormName Then IsFOpen = True Exit Function End If Next frm End Function | Очистка таблицы Вызывается как ClearT("БольшущаяТаблица") Function ClearTbl(strTbl As String) ' очистка таблицы strTbl CurrentDb.Execute "DELETE * from [" & strTbl & "];" End Function | И есть еще пара элементов. Создаю таблицу, я ее называю INFO и две функции, которые позволяют вычитывать и записывать в нее значения В таблице три поля : ID -Уникальный текстовой идентификатор. Как правило из 3-7 букв INFO - Собственно значение надо прочитать или записать Description - пояснение о назначении параметра Хранить в ней можно самые разношерстные данные, создавать ради которых отдельные таблицы неразумно... Ставки и коэффициенты, дату последнего переучета и архивации, пути к другим каталогам... Тогда не приходится, к примеру, вводить в формы по умолчанию курс доллара , а затем при изменении курса писать процедуры по вводу и сохранению в форме нового курса по умолчанию. (Со мной такое было ) Единственное, что надо иметь ввиду, что если обращение к таблице становится частым (например, в цикле), не забывайте передать значение в переменные. В одной из своих баз я имел разницу от полутора секунд до 4(!) минут при работе процедуры. Например, теперь это выглядит так: В форме просто пишется: Ну, а в модуле QuickService дописаны еще 2 функции Function qVal(strInfo As String) 'Вынимание значений из таблицы INFO Static rs As Recordset mySQL = _ "SELECT Info.[Info] FROM Info WHERE (((Info.[ID])='" & strInfo & "'));" Set rs = CurrentDb.OpenRecordset(mySQL) qVal = rs.Fields(0) rs.Close End Function Function qValWr(strInfo As String, Var As String) 'Изменение значений в таблице INFO Dim rs As Recordset mySQL = "SELECT Info.[Info] FROM Info " & _ "WHERE (((Info.[ID])='" & tInfo & "'));" Set rs = CurrentDb.OpenRecordset(mySQL) rs.Edit rs.Fields(0) = Var rs.Update rs.Close End Function 'Записать новое значение в таблицу INFO qVal("Kurs"), "29,5" | Ну, и на последок, я копирую в новую базу форму "INFO" и сажаю на панель инструментов значок на ее открытие. Предлагаю показать здесь ваши подстриженые ногти =о)… Просмотров: 5306
Ваш коментарий будет первым | | |