Смекни!
smekni.com

Автоматизация учета товаров на АГЗС "Северного объединения по эксплуатации газового хозяйства" (стр. 17 из 18)

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

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

On Error GoTo Err_Кнопка9_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка9_Click:

Exit Sub

Err_Кнопка9_Click:

MsgBox Err.Description

Resume Exit_Кнопка9_Click

End Sub

ФормаОСВ

Option Compare Database

Private Sub Calendar4_Updated(Code As Integer)

MsgBox Format(Calendar4.Object.Value, "dd/mm/yy")

ДатаОСВ = Format(Calendar4.Object.Value, "dd/mm/yy")

End Sub

' Изменяет формат отображения даты

Private Sub Form_Open(Cancel As Integer)

Form_ОСВ!ДатаОСВ.Format = "mmmm yyyy"

End Sub

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

On Error GoTo Err_Кнопка3_Click

Dim stDocName As String

stDocName = ChrW(1079) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1057) & ChrW(1042) & ChrW(95) & ChrW(1087) & ChrW(1077) & ChrW(1088) & ChrW(1077) & ChrW(1082) & ChrW(1088) & ChrW(1077) & ChrW(1089) & ChrW(1090) & ChrW(1085) & ChrW(1099) & ChrW(1081)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка3_Click:

Exit Sub

Err_Кнопка3_Click:

MsgBox Err.Description

Resume Exit_Кнопка3_Click

End Sub

' кнопка вызова формы с календарём

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

' сделать активным поле, в которое нужно ввести дату

ДатаОСВ.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Форма остатки

Option Compare Database

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

On Error GoTo Err_Кнопка7_Click

Dim stDocName As String

DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview

Exit_Кнопка7_Click:

Exit Sub

Err_Кнопка7_Click:

MsgBox Err.Description

Resume Exit_Кнопка7_Click

End Sub

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

On Error GoTo Err_Кнопка8_Click

Dim stDocName As String

stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка8_Click:

Exit Sub

Err_Кнопка8_Click:

MsgBox Err.Description

Resume Exit_Кнопка8_Click

End Sub

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

On Error GoTo Err_Кнопка10_Click

Dim stDocName As String

stDocName = [ЗапросОстатки]

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка10_Click:

Exit Sub

Err_Кнопка10_Click:

MsgBox Err.Description

Resume Exit_Кнопка10_Click

End Sub

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

On Error GoTo Err_Кнопка11_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка11_Click:

Exit Sub

Err_Кнопка11_Click:

MsgBox Err.Description

Resume Exit_Кнопка11_Click

End Sub

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

On Error GoTo Err_Кнопка12_Click

Dim stDocName As String

stDocName = ChrW(1044) & ChrW(1080) & ChrW(1072) & ChrW(1075) & ChrW(1088) & ChrW(1072) & ChrW(1084) & ChrW(1084) & ChrW(1072) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка12_Click:

Exit Sub

Err_Кнопка12_Click:

MsgBox Err.Description

Resume Exit_Кнопка12_Click

End Sub

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

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Приложение 2

Запросы:

Клиентское приложение:

Выручка за смену по товарам:

SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки

FROM Продажа, Константы

WHERE (((Продажа.Дата)>All (select Начало from Смены Order by Начало desc)))

GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Константы.КодЗаправки;

Выручка по дням по товарам:

SELECT DateValue(Продажа.Дата) AS Выражение1, Номенклатура.Наименование, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

GROUP BY DateValue(Продажа.Дата), Номенклатура.Наименование;

Запрос с разбивкой поклиентам:

SELECT Контрагенты.Наименование, Sum(Продажа.Количество) AS Доза, Sum(Продажа.Стоимость) AS Сумма, Count(Продажа.КодКонтрагента) AS [Кол-во]

FROM Номенклатура INNER JOIN (Контрагенты INNER JOIN Продажа ON Контрагенты.КодКонтрагента = Продажа.КодКонтрагента) ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)>[Forms]![РеализацияГазаСРазбивкойПоКлиентам]![Поле1] And (Продажа.Дата)<[Forms]![РеализацияГазаСРазбивкойПоКлиентам]![Поле2]) AND ((Продажа.КодНоменклатуры)=1))

GROUP BY Контрагенты.Наименование;

МатОтчет:

SELECT ЗапросМатОтчетОстатокНач.Наименование, ЗапросМатОтчетОстатокНач.[Остаток(нач)], ЗапросМатОтчетПриход.ПриходОб, ЗапросМатОтчетПродажа.ПродажаОб, ЗапросМатОтчетКон.[Остаток(кон)]

FROM ((ЗапросМатОтчетПриход RIGHT JOIN ЗапросМатОтчетОстатокНач ON ЗапросМатОтчетПриход.Наименование = ЗапросМатОтчетОстатокНач.Наименование) LEFT JOIN ЗапросМатОтчетПродажа ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетПродажа.Наименование) LEFT JOIN ЗапросМатОтчетКон ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетКон.Наименование;

МатОтчет1:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS нач

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)<Forms!МатериальныйОтчет!Поле1))

GROUP BY Номенклатура.Наименование;

МатОтчет2:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS нач

FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)<Forms!МатериальныйОтчет!Поле1))

GROUP BY Номенклатура.Наименование;

МатОтчет3:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS [Приход(кон)]

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)<=[Forms]![МатериальныйОтчет]![Поле2]))

GROUP BY Номенклатура.Наименование;

МатОтчет4:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS [Расход(кон)]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)<=[Forms]![МатериальныйОтчет]![Поле2]))

GROUP BY Номенклатура.Наименование;

МатОтчет контрагенты:

SELECT ЗапросМатОтчет3.Наименование, (ЗапросМатОтчет3.[Приход(кон)]+ЗапросМатОтчет4.[Расход(кон)]) AS [Остаток(кон)]

FROM ЗапросМатОтчет3 INNER JOIN ЗапросМатОтчет4 ON ЗапросМатОтчет3.Наименование=ЗапросМатОтчет4.Наименование;

МатОтчет остаток начальный:

SELECT ЗапросМатОтчет1.Наименование, Sum(ЗапросМатОтчет1.нач+ЗапросМатОтчет2.нач) AS [Остаток(нач)]

FROM ЗапросМатОтчет1 LEFT JOIN ЗапросМатОтчет2 ON ЗапросМатОтчет1.Наименование = ЗапросМатОтчет2.Наименование

GROUP BY ЗапросМатОтчет1.Наименование;

МатОтчет приход:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS ПриходОб

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)>=Forms!МатериальныйОтчет!Поле1) And ((Приход.ДатаПрихода)<=Forms!МатериальныйОтчет!Поле2))

GROUP BY Номенклатура.Наименование;

МатОтчет продажа:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество) AS ПродажаОб

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)>=Forms!МатериальныйОтчет!Поле1) And ((Продажа.Дата)<=Forms!МатериальныйОтчет!Поле2))

GROUP BY Номенклатура.Наименование;

Остатки:

SELECT КодЗаправки AS K1, Alias.кодНоменклатуры AS N, now() AS D, Sum(K) AS S

FROM Константы, [SELECT приход.кодНоменклатуры , sum(количество) as K

from (приход INNER JOIN Номенклатура on приход.КодНоменклатуры=Номенклатура.КодНоменклатуры)

where Номенклатура.Товар=True

group by приход.кодНоменклатуры

union (SELECT продажа.кодНоменклатуры , sum(количество)*(-1) as K from (продажа INNER JOIN Номенклатура on продажа.КодНоменклатуры=Номенклатура.КодНоменклатуры)

where Номенклатура.Товар=True

group by продажа.кодНоменклатуры) ]. AS Alias

GROUP BY КодЗаправки, Alias.кодНоменклатуры;

Продажа операторами:

SELECT Сотрудники.Фамилия, DateValue(Продажа.Дата) AS Выражение1, Sum(Продажа.Количество) AS [Количество номен-ры], Count(Продажа.Количество) AS Количество

FROM Сотрудники INNER JOIN (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры) ON Сотрудники.КодСотрудника=Продажа.КодСотрудника

WHERE (Forms!ПродажаОператорами!ПолеСоСписком10=Номенклатура.КодНоменклатуры) And (((Продажа.Дата)>Forms!ПродажаОператорами!Поле1 And (Продажа.Дата)<Forms!ПродажаОператорами!Поле2))

GROUP BY Сотрудники.Фамилия, DateValue(Продажа.Дата);

Реализация газа общий:

SELECT ЗапросРеализацияГазаПриход.Приход AS [Приход газа], ЗапросРеализацияГазаПродажа.Продажа AS [Продажа газа], РГКС.[Кон остаток], РГНС.[Нач остаток]

FROM ЗапросРеализацияГазаПриход, ЗапросРеализацияГазаПродажа, РГКС, РГНС;

Реализация газа приход:

SELECT iif((Sum(количество)>0),Sum(количество),0) AS Приход

FROM Номенклатура INNER JOIN приход ON Номенклатура.КодНоменклатуры=приход.КодНоменклатуры

WHERE (((приход.ДатаПрихода)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (приход.ДатаПрихода)<=(SELECT Смены.Окончание FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) )) AND ((Номенклатура.Наименование)="Газ"));

Реализация газа продажа:

SELECT Iif((Sum(количество)>0),Sum(количество),0) AS Продажа

FROM Номенклатура INNER JOIN продажа ON Номенклатура.КодНоменклатуры=продажа.КодНоменклатуры

WHERE (((продажа.Дата)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (продажа.Дата)<=(SELECT Смены.Окончание FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) )) AND ((Номенклатура.Наименование)="Газ"));

Реализация газа:

SELECT Switch(Продажа.Безнал=0,"НАЛИЧНЫЕ",Продажа.Безнал=-1,"БЕЗНАЛ") AS Оплата, Номенклатура.Цена, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Count(Продажа.Количество) AS [Count-Количество]

FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Номенклатура.Наименование)="Газ") And ((Продажа.КодСмены)=Forms!РеализацияГаза!ПолеСоСписком0))