Разработка системы автоматизации для малого коммерческого предприятия, работающего в сфере информаци...

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



= 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 JO