<< Пред. стр. 10 (из 12) След. >>
labelEnd:Forms![Просмотр]![ОсновныеСчета].Form![ВнесениеВАО] = True
If flagБольше = True Then
Set rst = dbs.OpenRecordset("КредитАванс")
rst.AddNew
rst.[КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
rst![+или-] = Разница
rst![КодСистемы] = Код
rst![Месяц] = Дата
rst.Update
rst.Close
End If
Exit_Кнопка347_Click:
DoCmd.OpenTable "АвансовыйОтчет"
dbs.Close
Exit Sub
Err_Кнопка347_Click:
If Err.Number = 94 Then
MsgBox ("Задайте дату платежки")
Exit Sub
End If
If Err.Number = 3021 Then
DoCmd.OpenForm "Месяц2", , , , , acDialog
ДатаTMP3 = "01." & Forms![Месяц2]![Месяц] & "." & Forms![Месяц2]![Год]
ДатаПМС = Format(ДатаTMP3, "m yy")
flagГолоеСопр = True
'ДатаTMP3 = Forms![Месяц2]![Месяц]
'ДатаПМС = Format(ДатаTMP3, "m yy")
Resume Дата
End If
If Err.Number = 424 Then
Resume labelEnd
End If
If Err.Number = 2113 Then
Resume labelBegin
End If
' Вначале, вычитаем константу, добавленную объектом, чтобы получить
' собственный код ошибки объекта.
MyError = Err.Number - vbObjectError
' Если после вычитания константы vbObjectError число по-прежнему
' попадает в диапазон 0 - 65535, то ошибка определена в объекте.
If MyError > 0 And MyError < 65535 Then
Msg = "Адресуемый объект присвоил ошибке следующий код : " _
& MyError & ". Источником ошибки является: " _
& Err.Source & ". Нажмите клавишу F1 для вывода справки."
' В противном случае ошибке соответствует код ошибки Visual Basic.
Else
Msg = "Эта ошибка (# " & Err.Number & ") имеет код ошибки Visual" & _
" Basic. Для вывода раздела справки Visual Basic нажмите" & _
" кнопку 'Справка' или клавишу F1."
End If
MsgBox Msg, , "Ошибка объекта", Err.HelpFile, Err.HelpContext
Err.Number = 0
Resume Exit_Кнопка347_Click
ДатаОпределение:
strSQLДата = "SELECT DISTINCTROW ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСчета, ДанныеДляАвансОтчета.КодСистемы, ДанныеДляАвансОтчета.КоличествоМС, Max(АвансовыйОтчет.Месяц) AS Max_Месяц FROM [ДанныеДляАвансОтчета] INNER JOIN [АвансовыйОтчет] ON ДанныеДляАвансОтчета.Код = АвансовыйОтчет.ИдентКод GROUP BY ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСчета, ДанныеДляАвансОтчета.КодСистемы, ДанныеДляАвансОтчета.КоличествоМС HAVING (((ДанныеДляАвансОтчета.КодЗаказчика)=" & Forms![Просмотр]![КодЗаказчика] & ") AND ((ДанныеДляАвансОтчета.КодСистемы)=" & rstПоCчету![КодСистемы] & ") AND ((ДанныеДляАвансОтчета.КоличествоМС)<>0));"
Set rstПоДате = dbs.OpenRecordset(strSQLДата)
rstПоДате.MoveLast
ДатаПМС = rstПоДате![Max_Месяц]
flagДата = True
rstПоДате.Close
GoTo Дата
End Sub
3) Просмотр информации по счетам и системам выбранного заказчика.
Private Sub Счет_Click()
Dim rst, rstTMP As Recordset
Dim dbs As Database
Dim i, j As Integer
Dim strSQL As String
Dim Дата As Date
Set dbs = CurrentDb
strSQL = "SELECT DISTINCTROW Заказчики.КодЗаказчика, ОсновныеСчета.НомерСчета, ОсновныеСчета.ОплатаСчета, ОсновныеСчета.ДатаСчета, ОсновныеСчета.СрокДействияСчета, Дистрибутивы.КодСистемы, Дистрибутивы.Код, Дистрибутивы.КоличествоМ, Дистрибутивы.Цена, Дистрибутивы.Сопровождение, Дистрибутивы.Скидки, Дистрибутивы.СкидкиС, Дистрибутивы.СпецвупыскИлиНет FROM ([Заказчики] INNER JOIN [ОсновныеСчета] ON Заказчики.КодЗаказчика = ОсновныеСчета.КодЗаказчика) INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета WHERE (((Заказчики.КодЗаказчика)=" & Me![КодЗаказчика] & "));"
Set rst = dbs.OpenRecordset(strSQL)
Set rstTMP = dbs.OpenRecordset("ИнфоПоСистемамЗаказчика")
Do Until rstTMP.EOF
rstTMP.Delete
rstTMP.MoveNext
Loop
If rst.RecordCount = 0 Then
MsgBox ("Нет счетов на данную организацию")
rstTMP.Close
rst.Close
dbs.Close
Me.Refresh
Exit Sub
End If
rst.MoveLast
j = rst.RecordCount
rst.MoveFirst
For i = 1 To j
rstTMP.AddNew
rstTMP![КодСистемы] = НазваниеСистемы(rst![КодСистемы])
rstTMP![ПоСчету] = rst![НомерСчета]
If rst![Код] = 1 Then
rstTMP![Тип] = "Локальная"
Else
rstTMP![Тип] = "Сетевая"
End If
rstTMP![ДатаС] = CurrentDateWParam(rst![ДатаСчета])
rstTMP![Цена] = rst![Цена]
rstTMP![Сопр] = rst![Сопровождение]
rstTMP![Скид] = rst![Скидки]
rstTMP![СкидС] = rst![СкидкиС]
rstTMP![ДейстПо] = rst![СрокДействияСчета]
rstTMP![Спец] = rst![СпецвупыскИлиНет]
rstTMP![Кво] = rst![КоличествоМ]
rstTMP![Оплата] = rst![ОплатаСчета]
rst.MoveNext
rstTMP.Update
Next i
Me![ИнфоПоОрганСистемы].Form.Visible = -1
Me![ИнфоПоОрганизSub].Form.Visible = 0
rstTMP.Close
rst.Close
dbs.Close
Me.Refresh
End Sub
Private Sub Сист_Click()
On Error GoTo Err_Кнопка6_Click
Dim rst, rstTMP, rstTMP2 As Recordset
Dim rstTMP3 As Recordset
Dim rstTMP4 As Recordset
Dim rstTMP5 As Recordset
Dim dbs As Database
Dim i, j As Integer
Dim strSQL, strSQLTMP, strSQLTMP3 As String
Dim strSQLTMP2 As String
Dim Дата As Date
DoCmd.Hourglass True
Set dbs = CurrentDb
strSQL = "SELECT DISTINCTROW ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСистемы FROM [ДанныеДляАвансОтчета] WHERE (((ДанныеДляАвансОтчета.КодЗаказчика)=" & Me![КодЗаказчика] & ") AND ((ДанныеДляАвансОтчета.КоличествоМС)<>0));"
Set rst = dbs.OpenRecordset(strSQL)
Set rstTMP4 = dbs.OpenRecordset("ИнфоПоСистемамЗаказчика")
Do Until rstTMP4.EOF
rstTMP4.Delete
rstTMP4.MoveNext
Loop
If rst.RecordCount = 0 Then
' MsgBox ("Не сопровождается")
rst.Close
Me![ИнфоПоОрганизSub].Form.Visible = -1
Me![ИнфоПоОрганСистемы].Form.Visible = 0
'инфо по 1996 году
strSQLTMP2 = "SELECT DISTINCTROW АвансПоОстаткамС1996Года.Заказчик, АвансПоОстаткамС1996Года.Месяц, АвансПоОстаткамС1996Года.Сумма FROM АвансПоОстаткамС1996Года WHERE (((АвансПоОстаткамС1996Года.Заказчик)=" & Me![КодЗаказчика] & "));"
Set rstTMP5 = dbs.OpenRecordset(strSQLTMP2)
rstTMP4.AddNew
rstTMP5.MoveFirst
rstTMP4![Дата1С1996] = CurrentMWParam(rstTMP5![Месяц])
rstTMP5.MoveLast
rstTMP4![Дата2С1996] = rstTMP5![Месяц]
rstTMP5.Close
rstTMP4.Update
Me.Refresh
rstTMP4.Close
dbs.Close
DoCmd.Hourglass False
Exit Sub
End If
rst.MoveLast
j = rst.RecordCount
rst.MoveFirst
For i = 1 To j
rstTMP4.AddNew
rstTMP4![КодСистемы] = НазваниеСистемы(rst![КодСистемы])
strSQLTMP = "SELECT DISTINCTROW Заказчики.Организация, ДанныеДляАвансОтчета.КодСистемы, АвансовыйОтчет.Месяц, ДанныеДляАвансОтчета.КоличествоМС, Заказчики.КодЗаказчика, ДанныеДляАвансОтчета.КодСчета, ОсновныеСчета.НомерСчета AS НС, АвансовыйОтчет.ИдентКод, Дистрибутивы.СкидкиС, ОсновныеСчета.ДатаСчета"
strSQLTMP = strSQLTMP & " FROM (([ОсновныеСчета] INNER JOIN ([Заказчики] INNER JOIN [ДанныеДляАвансОтчета] ON (Заказчики.КодЗаказчика = ДанныеДляАвансОтчета.КодЗаказчика) AND (Заказчики.КодЗаказчика = ДанныеДляАвансОтчета.КодЗаказчика)) ON (Заказчики.КодЗаказчика = ОсновныеСчета.КодЗаказчика) AND (ОсновныеСчета.КодСчета = ДанныеДляАвансОтчета.КодСчета)) INNER JOIN [АвансовыйОтчет] ON ДанныеДляАвансОтчета.Код = АвансовыйОтчет.ИдентКод) INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета"
strSQLTMP = strSQLTMP & " GROUP BY Заказчики.Организация, ДанныеДляАвансОтчета.КодСистемы, АвансовыйОтчет.Месяц, ДанныеДляАвансОтчета.КоличествоМС, Заказчики.КодЗаказчика, ДанныеДляАвансОтчета.КодСчета, ОсновныеСчета.НомерСчета, АвансовыйОтчет.ИдентКод, Дистрибутивы.СкидкиС, ОсновныеСчета.ДатаСчета"
strSQLTMP = strSQLTMP & " HAVING (((ДанныеДляАвансОтчета.КодСистемы)=" & rst![КодСистемы] & ") AND ((ДанныеДляАвансОтчета.КоличествоМС)<>0) AND ((Заказчики.КодЗаказчика)=" & Me![КодЗаказчика] & "));"
Set rstTMP2 = dbs.OpenRecordset(strSQLTMP)
Дата = Format(rstTMP2![Месяц], "m yy")
rstTMP4![ДатаС] = Дата
rstTMP2.MoveLast
Дата = Format(rstTMP2![Месяц], "m yy")
rstTMP4![ДейстПо] = Дата
rstTMP4![ПоСчету] = rstTMP2![НС]
rstTMP4![ДатаСчСопр] = CurrentDateWParam(rstTMP2![ДатаСчета])
rstTMP4![СкидС] = rstTMP2![СкидкиС]
'Запрос по системам
strSQLTMP = "SELECT DISTINCTROW Заказчики.КодЗаказчика, Заказчики.Организация, ОсновныеСчета.НомерСчета, ОсновныеСчета.ДатаСчета, ОсновныеСчета.ДатаУстановки, Дистрибутивы.КодСистемы, Дистрибутивы.Код, Дистрибутивы.СпецвупыскИлиНет, Дистрибутивы.Скидки, Дистрибутивы.Цена, Дистрибутивы.НомерДистрибутива"
strSQLTMP = strSQLTMP & " FROM ([Заказчики] INNER JOIN [ОсновныеСчета] ON Заказчики.КодЗаказчика = ОсновныеСчета.КодЗаказчика) INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета"
strSQLTMP = strSQLTMP & " WHERE (((Заказчики.КодЗаказчика)=" & Me![КодЗаказчика] & ") AND ((Дистрибутивы.КодСистемы)=" & rst![КодСистемы] & ") AND ((Дистрибутивы.Цена)<>0));"
Set rstTMP3 = dbs.OpenRecordset(strSQLTMP)
rstTMP4![ПоСчетуПок] = rstTMP3![НомерСчета]
rstTMP4![ДатСчПок] = CurrentDateWParam(rstTMP3![ДатаСчета])
rstTMP4![Рег] = rstTMP3![НомерДистрибутива]
rstTMP4![Скид] = rstTMP3![Скидки]
rstTMP4![Спец] = rstTMP3![СпецвупыскИлиНет]
If rstTMP3![Код] = 1 Then
rstTMP4![Тип] = "Локальная"
Else
rstTMP4![Тип] = "Сетевая"
End If
labelnext:
strSQLTMP2 = "SELECT DISTINCTROW АвансПоОстаткамС1996Года.Заказчик, АвансПоОстаткамС1996Года.Месяц, АвансПоОстаткамС1996Года.Сумма FROM АвансПоОстаткамС1996Года WHERE (((АвансПоОстаткамС1996Года.Заказчик)=" & Me![КодЗаказчика] & "));"
Set rstTMP5 = dbs.OpenRecordset(strSQLTMP2)
If rstTMP5.RecordCount > 0 Then
rstTMP5.MoveFirst
rstTMP4![Дата1С1996] = CurrentMWParam(rstTMP5![Месяц])
rstTMP5.MoveLast
rstTMP4![Дата2С1996] = CurrentMWParam(rstTMP5![Месяц])
rstTMP5.Close
rstTMP4.Update
rst.MoveNext
rstTMP2.Close
rstTMP3.Close
Else
rstTMP5.Close
rstTMP2.Close
rstTMP3.Close
End If
Next i
rstTMP4.Close
rst.Close
dbs.Close
Me.Refresh
Exit_Кнопка6_Click:
Me.Refresh
Me![ИнфоПоОрганизSub].Form.Visible = -1
Me![ИнфоПоОрганСистемы].Form.Visible = 0
DoCmd.Hourglass False
Exit Sub
Err_Кнопка6_Click:
If Err.Number = 3021 Then
'MsgBox ("Нет данных по этой организации")
Resume labelnext:
'Resume Exit_Кнопка6_Click
'MsgBox Err.Description
End If
MsgBox ("Нет данных по этой организации")
Me![ИнфоПоОрганизSub].Form.Visible = 0
Me![ИнфоПоОрганСистемы].Form.Visible = 0
MsgBox Err.Number
Resume Exit_Кнопка6_Click
DoCmd.Hourglass False
End Sub
Задание по организационно - экономической части к дипломному проекту.
Тема: "Технико-экономическое обоснование проекта. Расчет сметы затрат и цены на ПП. Оценка конкурентоспособности разработки"
1. Календарный график.
В силу того, что данная разработка относится к НИР, которая не является комплексом работ высокой сложности и в ее выполнении не участвуют большое количество исполнителей, в данном случае для реализации работ выбран календарный график.
N п/п Наименование работ Исполнители Длительность работы Сент. окт. ноябрь Декабрь Январь 1 Разработка технического задания Начальник отдела, менеджер
20 2 Подбор литературы Системный программист, программист
15 3 Рабочее проектирование Системный программист, программист
25 4 Отладка и тестирование Системный программист, программист
55 5 Обобщение и оценка результатов Системный программист, программист, менеджер
30 6 Сдача темы Начальник отдела, менеджер
5
2. Расчет сметы.