Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Описание работы с базой данных

Работа с базой данных начинается с загрузки формы «Защита» (рис.1)

При неправильном вводе пароля доступ в базу данных невозможен. К базе данных есть два типа доступа:

Рис.1

    Администратор – полный доступ ко всем формам, отчетам, запросам, возможность добавлять и редактировать данные. Пользователь – просмотр данных без возможности редактирования.

После регистрации форм «Защита» закрывается и загружается форма приветствия (рис.2) и по нажатию кнопки «ОК» она закрывается и загружается «Главная кнопочная форма» (рис.3).

Рис.2

Рис.3

«Главная кнопочная форма » имеет возможность перехода ко всем другим формам и отчетам базы данных, в зависимости от типа регистрации.

Поиск.

Пользователю и администратору доступна возможность поиска курсов по их типу и по организации, которая проводит курс.

По нажатию на кнопку «Поиск…» на «Главной кнопочной форме» пользователь получает возможность выбора поиска курсов в городе по организации или по типу курса(Рис.4).

Рис.4

По нажатию на кнопку «Поиск по организации» загружается форма «поиск по организации» (Рис.5), где пользователь выбирает из раскрывающегося списка организацию и по нажатию кнопки «Поиск» загружается форма «Организации»(Рис.6) с информацией о курсах предоставляемых в этой организации.

Рис.5

Рис.6

По нажатию на кнопку «Поиск по типу курса» загружается форма «Поиск по типу курса» (Рис.7), где пользователь выбирает из раскрывающегося списка тип курса и по нажатию кнопки «Поиск»

НЕ нашли? Не то? Что вы ищете?

Загружается форма «Главная Названия курсов» (Рис.8) с данными о выбранном курсе (тип, кол-во человек в группе, организация, проводящая курс и т. д.)

Рис.7

Рис.8

На форме «Главная Названия курсов» находится кнопка Информация о фирме». По нажатии а эту кнопку загружается форма «Вопрос о фирме» (Рис.9) с раскрывающимся списком, в котором пользователь выбирает интересующую его фирму и по нажатию на кнопку «Информация» загружается форма «Информация о фирме» (Рис.10) с данными о выбранной организации.

Рис.9

Рис.10

Общая форма поиска содержит кнопку «Возврат возвращающую пользователя на! Главную кнопочную форму»

«Главная кнопочная форма» содержит кнопку «Все об организациях и курсах», по нажатию на которую загружается форма «Главная Названия курсов» с возможностью просмотра информации о всех курсах базы данных.

Печать отчетов.

В банной базе данных имеется возможность печать информации об организациях по типам курсов (Рис.12) и информации о курсах по организациям (Рис.13) и формы «Печать отчетов…»(Рис.11)

Рис.11

Рис.12

Рис.13

Форма «Печать отчетов» имеет кнопку «Возврат», позволяющую пользователю перейти на «Главную кнопочную форму».

Администрирование.

Возможности администрирования может увидеть и простой пользователь, но вносить изменения может только администратор.

Если входящий зарегистрировался как администратор, то ему доступны формы «Добавление курсов», «Справочники», «В окно Базы Данных»(Рис.14).

Рис.14

По нажатию на кнопку «Добавление курсов» загружается форма «Курсы и организации1»(Рис.15), при вводе новой фирмы загружается форма «Организации1»(Рис.16) с возможностью ввода данных о новой организации.

Все раскрывающиеся списки на данных формах имеют возможность ввода новых данных. При вводе новых данных в раскрывающийся список «Название курса» загружается форма «Названия курсов2»(Рис.17) с возможностью ввода типа курса.

Рис.15

Рис.16

Рис.17

На форме «Администрирование…» имеется кнопка справочники, загружающая форму «Справочники»(Рис.18).

Рис.18

Данная форма имеет возможность просмотра и ввода данных о типах курсов, районах, выдаваемых документах и формах обучения.

На форме «Администрирование…» имеется кнопка «В окно Базы Данных», при ее нажатии закрывается «Главная кнопочная форма» и открывается окно Базы Данных.

На форме «Администрирование…» также имеется кнопка «Возврат», возвращающая на «Главную кнопочную форму».

«Главная кнопочная форма» имеет кнопку «Выход», по нажатии на которую происходит выход из всего приложения.

Приложение1.

Формы.

«Защита»

Кнопка «ОК»

Private Sub Кнопка4_Click()

Dim Response

If Login([user], [password]) = True Then

DoCmd. Close

DoCmd. OpenForm "Заставка"

Else

MsgBox "Неправильное имя пользователя или пароль", vbOKCancel + vbCritical, "Promt"

End If

End Sub

Кнопка «Отмена» - макрос «Выход»

«Заставка»

Кнопка «ОК»

Private Sub Кнопка5_Click()

DoCmd. Close

DoCmd. OpenForm "Кнопочная форма"

End Sub

«поиск по организации»

Кнопка «Поиск»

Private Sub Поиск_Click()

On Error GoTo Err_Найти_Click

Dim stDocName As String

Dim stLinkCriteria As String

stLinkCriteria = ""

If Not IsNull(Me![ПолеСоСписком2]) Then

stLinkCriteria = "[Код организации]=" & Me![ПолеСоСписком2]

Else

stLinkCriteria = ""

End If

stDocName = "Организации"

DoCmd. OpenForm stDocName, , stLinkCriteria

Exit_Поиск_Click:

Exit Sub

Err_Найти_Click:

MsgBox Err. Description

Resume Exit_Поиск_Click

End Sub

Раскрывыющийся список ПолеСоСписком2

SELECT Организации.[Код организации], Организации. Название

FROM Организации

ORDER BY Организации. Название;

«Поиск по типу курса»

Кнопка «Поиск»

Private Sub Поиск_Click()

'On Error GoTo Err_Найти_Click

Dim stDocName As String

Dim stLinkCriteria As String

stLinkCriteria = ""

If Not IsNull(Me![Полекурс]) Then

stLinkCriteria = "[Тип курса]=" & Me![Полекурс]

Else

stLinkCriteria = ""

End If

stDocName = "Главная Названия курсов"

DoCmd. OpenForm stDocName, , stLinkCriteria

Exit_Поиск_Click:

Exit Sub

Err_Найти_Click:

MsgBox Err. Description

Resume Exit_Поиск_Click

End Sub

Раскрывающийся список Полекурсрас

SELECT [Тип курса с сортировкой].[Код типа курсов], [Тип курса с сортировкой].[Тип курсов]

FROM [Тип курса с сортировкой];

«Главная Названия курсов»

Форма построена на основе запроса:

SELECT [Названия курсов].[Код курса], [Названия курсов].[Название курса], [Названия курсов].[Тип курса], [Тип курса].[Код типа курсов], [Тип курса].[Тип курсов]

FROM [Тип курса] INNER JOIN [Названия курсов] ON [Тип курса].[Код типа курсов] = [Названия курсов].[Тип курса];

Кнопка «Информация о фирме»

Private Sub Кнопка20_Click()

DoCmd. OpenForm "Вопрос о фирме"

End Sub

Раскрывающийся список Полекурсрас

SELECT [Тип курса с сортировкой].[Код типа курсов], [Тип курса с сортировкой].[Тип курсов]

FROM [Тип курса с сортировкой];

Форма имеет подчиненную форму «Курсы и организации подчиненная форма1», построенную на основе запроса:

SELECT [Названия курсов].[Код курса] AS [Названия курсов_Код курса], [Названия курсов].[Название курса], [Названия курсов].[Тип курса], [Курсы и организации].[Код организации], [Курсы и организации].[Код курса] AS [Курсы и организации_Код курса], [Курсы и организации].Стоимость, [Курсы и организации].Продолжительность, [Курсы и организации].[Количество человек], [Курсы и организации].[Выдаваемый документ], [Курсы и организации].[Форма обучения], [Курсы и организации].Описание, [Тип курса].[Код типа курсов], [Тип курса].[Тип курсов]

FROM [Тип курса] INNER JOIN ([Названия курсов] INNER JOIN [Курсы и организации] ON [Названия курсов].[Код курса] = [Курсы и организации].[Код курса]) ON [Тип курса].[Код типа курсов] = [Названия курсов].[Тип курса];

ПолеСоСписком36

SELECT [Тип курса].[Код типа курсов], [Тип курса].[Тип курсов]

FROM [Тип курса];

ПолеСоСписком30

SELECT [Выдаваемый документ].[Код документа], [Выдаваемый документ].[Название документа]

FROM [Выдаваемый документ];

ПолеСоСписком32

SELECT [Форма обучения].[Код формы обучения], [Форма обучения].[Форма обучения]

FROM [Форма обучения];

«Вопрос о фирме»

Кнопка «Информация»

Private Sub Поиск_Click()

'On Error GoTo Err_Найти_Click

Dim stDocName As String

Dim stLinkCriteria As String

stLinkCriteria = ""

If Not IsNull(Me![ПолеСоСписком0]) Then

stLinkCriteria = "[Код организации]=" & Me![ПолеСоСписком0]

Else

stLinkCriteria = ""

End If

stDocName = "Информация о фирме"

DoCmd. OpenForm stDocName, , stLinkCriteria

Exit_Поиск_Click:

Exit Sub

Err_Найти_Click:

MsgBox Err. Description

Resume Exit_Поиск_Click

End Sub

ПолеСрСписком0

SELECT [Организации с сортировкой].[Код организации], [Организации с сортировкой].Название

FROM [Организации с сортировкой];

«Курсы и организации для добавления»

Private Sub ПолеСоСписком16_NotInList(NewData As String, Response As Integer)

Dim NewID

If MsgBox("Ввести новое название?", vbQestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

DoCmd. OpenForm "Организации1", , acFormAdd, acDialog, NewData

NewID = DLookup("[Код организации]", "Организации", "[Название]='" & NewData & "'")

Response = acDataErrContinue

If Not IsNull(NewID) Then

Me![ПолеСоСписком16] = NewID

Me![ПолеСоСписком16].Requery

Me![ПолеСоСписком16] = NewID

End If

End If

End Sub

Private Sub ПолеСоСписком20_NotInList(NewData As String, Response As Integer)

Dim NewID As Long

If MsgBox("Ввести новый документ?", vbQuestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

Set tbl = CurrentDb. OpenRecordset("Выдаваемый документ")

tbl. AddNew

NewID = tbl![Код документа]

tbl![Название документа] = NewData

tbl. Update

Response = acDataErrContinue

Me![ПолеСоСписком20] = NewID 'присваивает полю код новой записи

Me![ПолеСоСписком20].Requery 'обновление запроса для списка

Me![ПолеСоСписком20] = NewID 'устанавливает значение (после обновления

'запроса осуществляет выбор из списка)

tbl. Close

End If

End Sub

Private Sub ПолеСоСписком22_NotInList(NewData As String, Response As Integer)

Dim NewID As Long

If MsgBox("Ввести новую форму?", vbQuestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

Set tbl = CurrentDb. OpenRecordset("Форма обучения")

tbl. AddNew

NewID = tbl![Код формы обучения]

tbl![Форма обучения] = NewData

tbl. Update

Response = acDataErrContinue

Me![ПолеСоСписком22] = NewID 'присваивает полю код новой записи

Me![ПолеСоСписком22].Requery 'обновление запроса для списка

Me![ПолеСоСписком22] = NewID 'устанавливает значение (после обновления

'запроса осуществляет выбор из списка)

tbl. Close

End If

End Sub

Private Sub ПолеСоСписком27_NotInList(NewData As String, Response As Integer)

Dim NewID

If MsgBox("Ввести новое название курса?", vbQestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

DoCmd. OpenForm "Названия курсов2", , acFormAdd, acDialog, NewData

NewID = DLookup("[Код курса]", "Названия курсов", "[Название курса] ='" & NewData & "'")

Response = acDataErrContinue

If Not IsNull(NewID) Then

Me![ПолеСоСписком27] = NewID

Me![ПолеСоСписком27].Requery

Me![ПолеСоСписком27] = NewID

End If

End If

End Sub

«Организации1»

Private Sub Form_Open(Cancel As Integer)

If Not IsNull(Forms![Организации1].OpenArgs) Then

Dim fdef As String

fdef = Forms![Организации1].OpenArgs

Forms![Организации1].RecordSource = "Организации"

Forms![Организации1]![Название].DefaultValue = "'" & fdef & "'"

Forms![Организации1].NavigationButtons = False

End If

End Sub

Private Sub Район_NotInList(NewData As String, Response As Integer)

Dim NewID As Long

If MsgBox("Ввести новый район?", vbQuestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

Set tbl = CurrentDb. OpenRecordset("Районы")

tbl. AddNew

NewID = tbl![Код района]

tbl![Район] = NewData

tbl. Update

Response = acDataErrContinue

Me![Район] = NewID 'присваивает полю код новой записи

Me![Район].Requery 'обновление запроса для списка

Me![Район] = NewID 'у

tbl. Close

End If

End Sub

«Названия курсов

Private Sub Form_Open(Cancel As Integer)

Dim fdef As String

fdef = Forms![Названия курсов2].OpenArgs

Forms![Названия курсов2].RecordSource = "Названия курсов"

Forms![Названия курсов2]![Название курса].DefaultValue = "'" & fdef & "'"

Forms![Названия курсов2].NavigationButtons = False

End Sub

Private Sub ПолеСоСписком12_NotInList(NewData As String, Response As Integer)

Dim NewID As Long

If MsgBox("Ввести новый тип курса?", vbQuestion + vbDefaultButton2 + vbYesNo, "Внимание!") = vbYes Then

Set tbl = CurrentDb. OpenRecordset("Тип курса")

tbl. AddNew

NewID = tbl![Код типа курсов]

tbl![Тип курсов] = NewData

tbl. Update

Response = acDataErrContinue

Me![ПолеСоСписком12] = NewID 'присваивает полю код новой записи

Me![ПолеСоСписком12].Requery 'обновление запроса для списка

Me![ПолеСоСписком12] = NewID 'устанавливает значение (после обновления

'запроса осуществляет выбор из списка)

tbl. Close

End If

End Sub

«Справочники»

Private Sub Form_Open(Cancel As Integer)

Forms![Справочники].RecordSource = "Тип курса с сортировкой"

Forms![Справочники]![Поле].ControlSource = "Тип курсов"

Forms![Справочники]![Код].ControlSource = "Код типа курсов"

Forms![Справочники]![Поле].SetFocus

Forms![Справочники]![Код].Enabled = False

End Sub

Private Sub Справочники_Click()

Select Case Me![Справочники]

Case 1

Forms![Справочники].RecordSource = "Тип курса с сортировкой"

Forms![Справочники]![Поле].ControlSource = "Тип курсов"

Forms![Справочники]![Код].ControlSource = "Код типа курсов"

Forms![Справочники]![Поле].SetFocus

Forms![Справочники]![Код].Enabled = False

Case 2

Forms![Справочники].RecordSource = "Районы Запрос"

Forms![Справочники]![Поле].ControlSource = "Район"

Forms![Справочники]![Код].ControlSource = "Код района"

Forms![Справочники]![Поле].SetFocus

Forms![Справочники]![Код].Enabled = False

Case 3

Forms![Справочники].RecordSource = _

"Форма обучения с сортировкой"

Forms![Справочники]![Поле].ControlSource = "Форма обучения"

Forms![Справочники]![Код].ControlSource = _

"Код формы обучения"

Forms![Справочники]![Поле].SetFocus

Forms![Справочники]![Код].Enabled = False

Case 4

Forms![Справочники].RecordSource = _

"Выдаваемый документ с сортировкой"

Forms![Справочники]![Поле].ControlSource = "Название документа"

Forms![Справочники]![Код].ControlSource = _

"Код документа"

Forms![Справочники]![Поле].SetFocus

Forms![Справочники]![Код].Enabled = False

End Select

End Sub

Модуль «Защита».

Option Compare Database

Private user As String

Public Const AdminUserName = "admin"

Private Const AdminUserPass = "admin"

Public Const SimpleUserName = "user"

Private Const SimpleUserPass = "user"

Public Function Login(newUser As String, newPass As String) As Boolean

Login = False

Select Case newUser

Case AdminUserName:

If newPass = AdminUserPass Then

Login = True

user = AdminUserPass

End If

Case SimpleUserName:

If newPass = SimpleUserPass Then

Login = True

user = SimpleUserName

End If

End Select

End Function

Public Function getUser() As String

getUser = user

End Function

Public Function isAdmin() As Boolean

If user = AdminUserName Then

isAdmin = True

Else

isAdmin = False

End If

End Function

Отчеты.

Тип курса - на основе запроса «Для отчета по типу курса»

SELECT Организации. Название, Организации. Адрес, Организации.[Номер лицензии], Организации. Телефон, Организации. Факс, Организации. Директор, [Тип курса].[Тип курсов]

FROM [Тип курса] INNER JOIN (Организации INNER JOIN ([Названия курсов] INNER JOIN [Курсы и организации] ON [Названия курсов].[Код курса] = [Курсы и организации].[Код курса]) ON Организации.[Код организации] = [Курсы и организации].[Код организации]) ON [Тип курса].[Код типа курсов] = [Названия курсов].[Тип курса]

GROUP BY Организации. Название, Организации. Адрес, Организации.[Номер лицензии], Организации. Телефон, Организации. Факс, Организации. Директор, [Тип курса].[Тип курсов];

Организации – на основе запроса «Для отчета по фирме»

SELECT Организации. Название, [Названия курсов].[Название курса], [Курсы и организации].Стоимость, [Курсы и организации].Продолжительность, [Курсы и организации].[Количество человек], [Выдаваемый документ].[Название документа], [Форма обучения].[Форма обучения], [Курсы и организации].Описание

FROM [Форма обучения] INNER JOIN ([Тип курса] INNER JOIN (Организации INNER JOIN ([Названия курсов] INNER JOIN ([Выдаваемый документ] INNER JOIN [Курсы и организации] ON [Выдаваемый документ].[Код документа] = [Курсы и организации].[Выдаваемый документ]) ON [Названия курсов].[Код курса] = [Курсы и организации].[Код курса]) ON Организации.[Код организации] = [Курсы и организации].[Код организации]) ON [Тип курса].[Код типа курсов] = [Названия курсов].[Тип курса]) ON [Форма обучения].[Код формы обучения] = [Курсы и организации].[Форма обучения]

GROUP BY Организации. Название, [Названия курсов].[Название курса], [Курсы и организации].Стоимость, [Курсы и организации].Продолжительность, [Курсы и организации].[Количество человек], [Выдаваемый документ].[Название документа], [Форма обучения].[Форма обучения], [Курсы и организации].Описание;

Приложение2