Разработка программного изделия «Учет и автоматизация товарооборота», страница 4

При выборе из главного меню пункта «Отчеты», открывается форма, позволяющая сформировать три отчета.

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

Запрос «Поиск потребителей по изделию» позволяет вывести отчет по потребителям, которые приобрели данный товар.

Запрос «Покупки с наибольшей стоимостью», позволяет сформировать отчет «Лучшие клиенты» (выводится 10 записей).

Запрос «Товарооборот за дату» позволяет вывести отчет о товарообороте, который был совершен за конкретную дату.

 Запрос «Товарооборот за период» позволяет вывести отчет о товарообороте, который был совершен за конкретный период.

     

При выборе пункта меню «Справка о программе», выводится следующие окно.

При выборе пункта меню «Выход из программы», сохраняются все данные и автоматически производится выход из БД.

ДОКУМЕНТАЦИЯ РАЗРАБОТКИ

1.  Справочные таблицы.

Таблица «Изделия»

IZ

kodI

naimI

zena

1

Телевизор

10 000,00р.

 

  Таблица «Потребители» 

Potr

kodP

naimP

adrP

1

Петров А.Р.

Кутузовскийпр., 18

Таблица «Товарооборот»

Tov

nom

kodP

kodI

kol

stoim

1

19

17

2

700,00р.

2.  Схема БД.

3.  Текст запросов.

3.1.  Поиск потребителей по заданному изделию.

SELECT DISTINCT Potr.naimP AS Потребитель, Potr.adrP AS [Адрес потребителя], Tov.data AS Дата, IZ.naimI

FROM Potr INNER JOIN (IZ INNER JOIN Tov ON IZ.kodI = Tov.kodI) ON Potr.kodP = Tov.kodP

WHERE (((IZ.naimI)=[Введите наименование изделия:]))

ORDER BY Potr.naimP;

3.2.  Покупки с наибольшей стоимостью.

SELECT TOP 10 Potr.naimP AS Потребитель, Sum(Tov.stoim) AS [Общая стоимость], Tov.data AS Дата

FROM Potr, IZ, Tov

WHERE (((IZ.kodI)=[Tov].[kodI]) AND ((Potr.kodP)=[Tov].[kodP]))

GROUP BY Potr.naimP, Tov.data, Potr.adrP

ORDER BY Sum(Tov.stoim) DESC;

3.3.  Товарооборот за дату

SELECT DISTINCT Potr.naimP AS Потребитель, IZ.naimI AS Изделие, Tov.stoim AS Стоимость, Tov.data

FROM Potr INNER JOIN (IZ INNER JOIN Tov ON IZ.kodI = Tov.kodI) ON Potr.kodP = Tov.kodP

WHERE (((Tov.data)=[Введите дату:]));

3.4.  Товарооборот за период

SELECT DISTINCT [Potr].[naimP] AS Потребитель, [IZ].[naimI] AS Изделие, [Tov].[stoim] AS Стоимость, [Tov].[data] AS Дата

FROM Potr INNER JOIN (IZ INNER JOIN Tov ON [IZ].[kodI]=[Tov].[kodI]) ON [Potr].[kodP]=[Tov].[kodP]

WHERE ((([Tov].[data]) Between [Введите начальную дату:] And [Введите конечную дату:]) And (([Введите начальную дату:])<=[Введите конечную дату:]))

ORDER BY [Tov].[data];

4.  Кодирование модулей для форм

4.1.  Форма «Потребители»

Private Sub Form_Load()

КнопкаД2.Enabled = True

Отчет2.Enabled = True

cmdDel.Visible = True

cmdSave.Visible = False

End Sub

// Программа на кнопку «Отчет»

Private Sub Отчет2_Click()

On Error GoTo Err_Отчет2_Click

    Dim stDocName As String

    stDocName = ChrW(1055) & ChrW(1086) & ChrW(1090) & ChrW(1088) & ChrW(1077) & ChrW(1073) & ChrW(1080) & ChrW(1090) & ChrW(1077) & ChrW(1083) & ChrW(1080)

    DoCmd.OpenReport stDocName, acPreview

Exit_Отчет2_Click:

    Exit Sub

Err_Отчет2_Click:

    MsgBox Err.Description

    Resume Exit_Отчет2_Click

    End Sub

//Программа на кнопку «Добавить»

Private Sub КнопкаД2_Click()

On Error GoTo Err_КнопкаД2_Click

kodP.SetFocus

КнопкаД2.Enabled = False

cmdDel.Enabled = False

Отчет2.Visible = False

cmdSave.Visible = True

    Dim stDocName As String

    stDocName = "SQL4"

    DoCmd.RunMacro stDocName

Exit_КнопкаД2_Click:

    Exit Sub

Err_КнопкаД2_Click:

    MsgBox Err.Description

    Resume Exit_КнопкаД2_Click

    End Sub

// Программа на кнопку «Удалить»

Private Sub cmdDel_Click()

On Error GoTo Err_cmdDel_Click

    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_cmdDel_Click:

    Exit Sub

Err_cmdDel_Click:

    MsgBox Err.Description

    Resume Exit_cmdDel_Click

   End Sub

// Программа на кнопку «Сохранить»

Private Sub cmdSave_Click()

On Error GoTo Err_cmdSave_Click

kodP.SetFocus

КнопкаД2.Enabled = True

cmdDel.Enabled = True

Отчет2.Visible = True

cmdSave.Visible = False

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_cmdSave_Click:

    Exit Sub

Err_cmdSave_Click:

    MsgBox Err.Description

    Resume Exit_cmdSave_Click

  End Sub

4.2.  Форма «Изделия»

// Программа на кнопку «Сохранить»

Private Sub cmdSave_Click()

On Error GoTo Err_cmdSave_Click

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

kodI.SetFocus