Рефераты. Разработка системы автоматизации для малого коммерческого предприятия работающего в сфере информационных услуг p> Style = vbOKCancel + vbQuestion ' Кнопки.

Title = "Сообщение" ' Заголовок.

Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.

If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).

GoTo labelBegin

Else

Exit Sub

End If

End If

labelBegin:

Цена = 0

Сопровождение = 0

rst.MoveLast

j = rst.RecordCount

rst.MoveFirst

For i = 1 To j

Цена = rst![Цена] * 1.2 + Цена

Сопровождение = rst![Сопровождение] * 1.2 + Сопровождение

rst.MoveNext

Next i

Сумма = Цена + Сопровождение

Forms![Просмотр]![ОсновныеСчета].Form![ПоСчету] = Сумма

rst.Close

strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета,
Платежки.СуммаПрихода As Цена, Платежки.ДатаВыписки As Дата FROM
[ОсновныеСчета] INNER JOIN Платежки ON ОсновныеСчета.КодСчета =
Платежки.КодСчета WHERE (((ОсновныеСчета.НомерСчета)=" & sing &
Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"

Set rst = dbs.OpenRecordset(strSQL)

rst.MoveLast

Дата = rst![Дата]

j = rst.RecordCount

rst.MoveFirst

For i = 1 To j

ЦенаП = rst![Цена] + ЦенаП

rst.MoveNext

Next i

Forms![Просмотр]![ОсновныеСчета].Form![ПоПлатежке] = ЦенаП

rst.Close

If ЦенаП < Сумма Then

Msg = "Cумма по счету" & Chr(13) & "

- " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & "

- " & ЦенаП & "р." & Chr(13) & "Cуммы по платежкам меньше суммы по счета." ' Сообщение.

'Msg = "Cуммы по платежкам меньше суммы по счетам." & Chr(13) &
"Занести в авансовый отчет?" ' Сообщение.

Style = vbCancel + vbCritical ' Кнопки.

Title = "Предупреждение" ' Заголовок.

Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.

Exit Sub

End If

If ЦенаП > Сумма Then

Msg = "Cумма по счету" & Chr(13) & "

- " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & "

- " & ЦенаП & "р." & Chr(13) & "Cуммы по платежкам больше суммы по счета." ' Сообщение.

'Msg = "Cуммы по платежкам больше суммы по счета." & Chr(13) &
"Занести в авансовый отчет?" ' Сообщение.

Style = vbOKCancel + vbCritical ' Кнопки.

Title = "Предупреждение" ' Заголовок.

Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.

If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).

flagБольше = True

Разница = ЦенаП - Сумма

GoTo labelOK

Else

Exit Sub

End If

End If

'ЦенаП_Р = ЦенаП

'Сумма_Р = Сумма

Msg = "Cумма по счету" & Chr(13) & "

- " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & "

- " & ЦенаП & "р." & Chr(13) & "Суммы совпадают." & Chr(13) & "Занести в авансовый отчет?" ' Сообщение.

Style = vbOKCancel + vbInformation ' Кнопки.

Title = "Сообщение" ' Заголовок.

Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.

If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).

Forms![Просмотр]![ОсновныеСчета].Form![Разница] = 0

GoTo labelOK

Else

Exit Sub

End If

labelOK:

Set rst = dbs.OpenRecordset("ДанныеДляАвансОтчета")

strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета,
Дистрибутивы.КодСистемы, Дистрибутивы.Цена, Дистрибутивы.ТолькоИПС,
Дистрибутивы.Сопровождение, Дистрибутивы.КоличествоМ,
Дистрибутивы.Количество FROM [ОсновныеСчета] INNER JOIN Дистрибутивы ON
ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета WHERE
(((ОсновныеСчета.НомерСчета)=" & sing &
Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"

'"SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Дистрибутивы.КодСистемы,
Дистрибутивы.Цена, Дистрибутивы.Сопровождение, Дистрибутивы.КоличествоМ,
Дистрибутивы.Количество FROM [ОсновныеСчета] INNER JOIN Дистрибутивы ON
ОсновныеСчета.НомерСчета = Дистрибутивы.НомерСчета WHERE
(((ОсновныеСчета.НомерСчета)=" &
Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & "));"

Set rstПоCчету = dbs.OpenRecordset(strSQL)

Set rstПоАО = dbs.OpenRecordset("АвансовыйОтчет")

rstПоCчету.MoveLast

j = rstПоCчету.RecordCount

ДатаStore = Дата

Select Case Forms![Просмотр]![ОсновныеСчета].Form![Код]

Case 1, 3

Нал = False

Case 2

Нал = True

End Select

rstПоCчету.MoveFirst

'ОСНОВНОЙ ЦИКЛ

flagДата = False

For i = 1 To j

'Проверка для вторичного ИПС

If rstПоCчету![Цена] = 0 Then

If flagДата = False Then

GoTo ДатаОпределение

End If

Дата = ДатаStore

Set dbs = CurrentDb

strSQLTMP = "SELECT DISTINCTROW ДанныеДляАвансОтчета.Код,
ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСистемы,
ДанныеДляАвансОтчета.КоличествоМС, Max(ДанныеДляАвансОтчета.ДатаПМС) AS
ДатаПМС FROM [ДанныеДляАвансОтчета] GROUP BY ДанныеДляАвансОтчета.Код,
ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСистемы,
ДанныеДляАвансОтчета.КоличествоМС HAVING
(((ДанныеДляАвансОтчета.КодЗаказчика)=" & Forms![Просмотр]![КодЗаказчика] &
") AND ((ДанныеДляАвансОтчета.КодСистемы)=" & rstПоCчету![КодСистемы] & ")
AND ((ДанныеДляАвансОтчета.КоличествоМС)0));"

Set rstTMP2 = dbs.OpenRecordset(strSQLTMP)

If rstTMP2.RecordCount >= 1 Then

GoTo labelЕстьЗаписи

'Else

'MsgBox ("Записей Нет")

Exit Sub

End If

labelЕстьЗаписи:

rstTMP2.MoveLast

rstTMP2.Close

Дата:

ДатаTMP2 = Format(ДатаStore, "m yy")

If flagГолоеСопр = True Then 'Расписать если сопров голое

rst.AddNew

rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]

rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]

rst![КодСистемы] = rstПоCчету![КодСистемы]

rst![ДатаПМС] = Format(ДатаTMP2, "m yy")

rst![КоличествоМС] = rstПоCчету![КоличествоМ]

rst![Нал] = Нал

Msg = "Заносим сопровождение " &
НазваниеСистемы(rstПоCчету![КодСистемы]) & " на " & rstПоCчету![КоличествоМ] & " месяцев"

Style = vbOKCancel + vbInformation ' Кнопки.

Title = "Сообщение" ' Заголовок.

MsgBox Msg, Style, Title

rst.Update

rst.MoveLast

m = rstПоCчету![КоличествоМ]

For k = 1 To m

rstПоАО.AddNew

rstПоАО![ИдентКод] = rst![Код]

ЦенаСоп = rstПоCчету![Сопровождение] / m

rstПоАО![Сумма] = ЦенаСоп * 1.2

rstПоАО![Нал] = Нал

ДатаTMP = Format(ДатаПМС, "m yy")

rstПоАО![Месяц] = ДатаTMP

ДатаTMP = ДатаTMP + 32

ДатаПМС = ДатаTMP

rstПоАО.Update

Next k

GoTo labelnext

End If

'Сравнение с месяцем выписки

ДатаTMP2 = CDate(Format(ДатаStore, "m yy"))

If CDate(ДатаTMP2) 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

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.