- •Задание
- •Федеральное государственное бюджетное образовательное учреждение
- •Высшего образования
- •«Поволжский государственный университет телекоммуникаций и информатики»
- •Отзыв руководителя
- •Федеральное государственное бюджетное образовательное учреждение
- •Высшего образования
- •«Поволжский государственный университет телекоммуникаций и информатики»
- •Показатель качества вкр
- •Введение
- •Исследовательский раздел
- •Анализ предметной области
- •Выбор среды разработки
- •Общие сведения о программе
- •Рекомендуемые системные требования и оборудование
- •– Настройки работы программы учера рабочего времени
- •– Окно настройки подключения к удалелнному рабочему столу в операционной системе Windows 10
- •Используемые базы данных
- •– Схема данных
- •Запуск программы
- •– Вход в программу. Окно авторизации.
- •– Подменю 5. Справочники
- •– Подменю 6.Обеды
- •Работа с программой
- •– Изменение начала работы
- •Назначение должности
- •– Окно 3.2. Назначение должности
- •– Окно 4.1. Перенос сотрудников в отдел кадров
- •Назначение прав доступа
- •– Окно 4.2. Назначение прав доступа
- •– Окно «Администраторские права»
- •– Сообщение о запрете доступа
- •Активные пользователи
- •– Окно «Активные пользователи»
- •Настройки программ
- •– Окно «Настройки программ»
- •Смена пользователя
- •– Выбор другого размещения при смене пользователя.
- •Справочники
- •Операции и расценки
- •– Окно «Расценки для сделки»
- •Должности
- •– Окно «Должности»
- •– Отчет по обедам. Вывод в электронные таблицы.
- •Объекты субд
- •– Список таблиц в системе
- •Запросы
- •– Список запросов в системе
- •– Список форм в системе
- •– Используется русский язык
- •– Используется анлгийския язык
- •– Форма календаря
- •Програмная реализация проекта
- •Работа со сканером штрих кодов
- •– Сканерш трих кодов Honeywell Eclipse ms5145
- •– Штрих коды сотрудников
- •Заключение
- •Список использованных источников
- •Sys_Использование строк в запросах
- •Активные_пользователи
- •Должности
- •Должности_подразделения
- •Доступ_к_программе
- •Заказ_обедов
- •Замечания_к_работе
- •Назначеные_должности
- •Настройка_раб_места
- •Настройка_раб_места_урв
- •Настройки_программ
- •Настройки_программ_server
- •Начисления
- •Обеды_контроль
- •Объект блюда
- •Объект вид блюд
- •Объект драйвер принтера
- •Объект меню
- •Объект принтер
- •Объект подразделение
- •Объект рабочее место
- •Объект размещение
- •Объект размещение физлица
- •Объект физическое лицо
- •Объект физлицо время пароля
- •Объект_программы
- •Объект_программы_server
- •Операции_применение
- •Отработанное_время
- •Пользователи_права
- •Постоянные_сотрудники
- •Работники_склада
- •Расценки_для_сделки
- •Система
- •Система_таблиц
- •Т_операции
- •Т_совпадение_сотрудников
- •Т_Сотрудники_увольнение
- •Т_этикетки_для_обеда
- •Запросы
- •Q_cистема_таблиц
- •Q_Начальное_заполнение_прав
- •Q_неактивные_сотрудники_за_полгода
- •Q_Фамилия_и_о
- •Q_Фамилия_Имя_Отчество
- •Qout_Заказ_обедов_свод
- •Qsys_Использование строк в запросах
- •Qt_права
- •Должности_f
- •Заказ_обедов_f
- •Календарь_f
- •Назначение_должности_f
- •Настройки_программ_f
- •Операции_f
- •Отчет_по_обедам_f
- •Пароли_операторов_f
- •Печать_бейджей_f
- •Права_доступа_f
- •Сообщение_f
- •Сотрудники_на_обед_f
- •Табель_f
- •Выполнение запросов в транзакции
- •Заполнение элементов ActiveX
- •Изменение размеров форм
- •Календарь
- •Настройки программ
- •Создание нового модуля
- •Иллюстрационный материал
Настройки программ
Public Sub CreateTimeTable(FormName As String)
Dim rstt As Recordset, NewTbl As TableDef, db As Database
Dim SQLstr As String, INTOstr As String, VALUEstr As String
Set db = CurrentDb
SQLstr = "SELECT Настройки_программ.FIELD_NAME, Настройки_программ.FIELD_VALUE, Настройки_программ.FIELD_TYPE " & _
"FROM Объект_программы INNER JOIN " & _
"Настройки_программ ON Объект_программы.ID = Настройки_программ.KOD_FORM " & _
"WHERE Объект_программы.FORM_NAME=" & Quoted(FormName)
Set rstt = db.OpenRecordset(SQLstr) 'получаем список полей для формы
If rstt.RecordCount > 0 Then Set NewTbl = db.CreateTableDef("Т_" & FormName) 'создаем новую временую таблицу с названием формы
While Not rstt.EOF 'создаем поля
NewTbl.Fields.Append NewTbl.CreateField(rstt![FIELD_NAME], rstt![FIELD_TYPE])
INTOstr = INTOstr & IIf(INTOstr <> "", ", ", "") & rstt![FIELD_NAME] 'собираем названия полей
VALUEstr = VALUEstr & IIf(VALUEstr <> "", ", ", "") & TypeChoose(rstt![FIELD_TYPE], Nz(rstt![FIELD_VALUE], "Null")) 'собираем значения полей
rstt.MoveNext
Wend
rstt.Close
If INTOstr <> "" Then
db.TableDefs.Append NewTbl 'формируем готовую табилцу
SQLstr = "INSERT INTO [Т_" & FormName & "] (" & INTOstr & ")" & _
"SELECT " & VALUEstr
db.Execute SQLstr 'вставляем значения в таблицу
End If
db.Close
End Sub
Private Function TypeChoose(Tp As Integer, valF As String) As String
If valF = "Null" Then TypeChoose = valF: Exit Function
Select Case Tp
Case 1, 2, 3, 4, 5, 6, 7:
TypeChoose = valF
Case 8
If valF = "Date()" Or valF = "Now()" Then
TypeChoose = valF
Else
TypeChoose = SQL_date(valF)
End If
Case 10, 12
TypeChoose = Quoted(valF)
Case Else
TypeChoose = valF
End Select
End Function
Public Function IsTable(NameTable As String) As Boolean
On Error Resume Next: IsTable = (CurrentDb.TableDefs(NameTable).NAME = NameTable): On Error GoTo ErrHandler
Exit Function
ErrHandler: IsTable = False
Exit Function
End Function
Создание нового модуля
Public Function CreateNewModule() As Boolean
Dim NewFile As String, i%
Dim db As Database
Dim app As Application
Dim ref As Reference, mref As Reference
CreateNewModule = False
NewFile = "Employee_.mdb"
For i = 0 To Forms.Count - 1
CloseObject acForm, Forms(0).NAME, , True
Next
On Error Resume Next: Kill NewFile: On Error GoTo 0
DBEngine.CreateDatabase NewFile, dbLangCyrillic, dbVersion40
Set db = CurrentDb
Debug.Print "происходит экспорт:"
'импорт таблиц
For i = 0 To db.TableDefs.Count - 1
If db.TableDefs(i).Attributes = 0 Or db.TableDefs(i).Attributes = 1073741824 Then DoCmd.CopyObject NewFile, db.TableDefs(i).NAME, acTable, db.TableDefs(i).NAME
Next
Debug.Print "таблиц"
'импорт запросов
For i = 0 To db.QueryDefs.Count - 1
DoCmd.CopyObject NewFile, db.QueryDefs(i).NAME, acQuery, db.QueryDefs(i).NAME
Next
Debug.Print i + 1, "запросов"
db.Close
'импорт модулей
For i = 0 To CurrentProject.AllModules.Count - 1
DoCmd.CopyObject NewFile, CurrentProject.AllModules(i).NAME, acModule, CurrentProject.AllModules(i).NAME
Next
Debug.Print i + 1, "модулей"
'импорт форм
For i = 0 To CurrentProject.AllForms.Count - 1
DoCmd.CopyObject NewFile, CurrentProject.AllForms(i).NAME, acForm, CurrentProject.AllForms(i).NAME
Next
Debug.Print i + 1, "форм"
'импорт форм
For i = 0 To CurrentProject.AllMacros.Count - 1
DoCmd.CopyObject NewFile, CurrentProject.AllMacros(i).NAME, acMacro, CurrentProject.AllMacros(i).NAME
Next
Debug.Print i + 1, "макросов"
'импорт отчетов
For i = 0 To CurrentProject.AllReports.Count - 1
DoCmd.CopyObject NewFile, CurrentProject.AllReports(i).NAME, acReport, CurrentProject.AllReports(i).NAME
Next
Debug.Print i + 1, "отчетов"
Debug.Print "Экспорт завершен!"
'создаем свойство
Set app = CreateObject("access.Application")
'подключаем нужный файл
app.OpenCurrentDatabase CurrentProject.Path & "\" & NewFile 'файл КУДА копируем референсы из текущего
'в ссылках текущего проета
Debug.Print "удаляем референсы"
For i = 0 To app.References.Count - 3
app.References.Remove app.References.Item(app.References.Count) ' удаляем все ненужные ссылки
Next
Debug.Print "добавляем новые референсы из текущей базы:"
For Each ref In Application.References
Debug.Print ref.NAME, ref.FullPath, ref.Major 'выводим ссылки
For Each mref In app.References 'в ссылках другого файла
If mref.NAME = ref.NAME Then GoTo 1 'если совпадают, пропускаем
Next
app.References.AddFromFile ref.FullPath 'добавляем ссылку
1: Next
Debug.Print "Ссылки установлены"
'app.Application.CommandBars.Add "Вход"
'app.Application.CommandBars ("Вход")
'app.MenuBar = "Вход" 'Сервис->Параметры запуска...->Строка меню
app.CurrentDb.Properties.Append app.CurrentDb.CreateProperty("StartUpForm", 10, "Вход_F") 'вход при запуске
Debug.Print "Форма Вход_F при входе"
app.CurrentDb.Properties.Append app.CurrentDb.CreateProperty("Auto Compact", 1, True) 'сжимать при закрытии
Debug.Print "парамерт сжимать при закрытии"
app.CurrentDb.Properties.Append app.CurrentDb.CreateProperty("AppTitle", 10, "Учет рабочего времени") 'заголовок приложения
Debug.Print "Установка заголовка приложения"
If NewFile = "Employee" Then
app.CurrentDb.Properties.Append app.CurrentDb.CreateProperty("AppIcon", 10, "Z:\bd_sklad\employee.ico") 'иконка приложения
Debug.Print "иконка"
End If
app.CurrentDb.Properties.Append app.CurrentDb.CreateProperty("StartUpShowDBWindow", 1, False) 'не показывать базу данных при входе
app.CloseCurrentDatabase 'закрываем базу
CreateNewModule = True
MsgBox "Новый файл создан: " & NewFile & vbNewLine & "Зайдите в него с нажатием клавиши SHIFT и произведите импорт меню, панелей, спецификаций и схемы данных", vbInformation, "Успешно выполнено"
'Debug.Print db.TableDefs(i).Name & db.TableDefs(i).Attributes
'DoCmd.TransferDatabase acImport, , NewFile, acTable + acModule + acQuery + acReport + acForm, File
End Function
