Здравствуйте. имеется следующий код | Код | Private Sub btnED_Click()
On Error GoTo btnED_Click_Error
If Not IsDate(Me.DataBP) Then Call MsgBox("В поле ""Начало работы"" введены неправильные данные.", vbCritical, "Ошибка в данных") Exit Sub End If
If Not IsNumeric(Me.DataP) Then Call MsgBox("В поле ""Срок (в днях)"" введены неправильные данные.", vbCritical, "Ошибка в данных") Exit Sub End If
If Me.DataP <= 0 Then Call MsgBox("В поле ""Срок (в днях)"" введено значение <= 0.", vbCritical, "Ошибка в данных") Exit Sub End If Dim strsql As String Dim rst As ADODB.Recordset
strsql = "SELECT TOP " & Me.DataP & " qryCurDay.tYear, qryCurDay.tMonth, qryCurDay.tDay, " _ & "qryCurDay.NumDay, qryCurDay.tWeekDay, qryCurDay.NewDay, qryCurDay.FD, " _ & "qryCurDay.CurDay " _ & "FROM qryCurDay " _ & "WHERE ((dateserial((qryCurDay.tYear),(qryCurDay.tMonth),(qryCurDay.tDay))>=" _ & "dateserial(" & Year(Me.DataBP) & "," & Month(Me.DataBP) & "," & Day(Me.DataBP) & ")) " _ & "AND ((qryCurDay.CurDay)<>0));"
Set rst = New ADODB.Recordset rst.Open strsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic If rst.RecordCount = 0 Then rst.Close Set rst = Nothing Call MsgBox("Расчет даты окончания работы невозможен." _ & vbCrLf & "Возможно у Вас не задан график рабочих дней на расчитываемый период." _ & vbCrLf & "Чтобы задать его нажмите на кнопку 'Переносы, новые рабочие и выходные дни' . В открывшейся форме нажмите на стрелку со звездочкой и введите нужный год. График будет создан." _ , vbCritical, "Расчет даты окончания работы") Exit Sub ElseIf rst.RecordCount < Me.DataP Then rst.Close Set rst = Nothing Call MsgBox("Расчет даты окончания работы невозможен." _ & vbCrLf & "Возможно у Вас переход на другой год и для него не задан график рабочих дней на расчитываемый период." _ & vbCrLf & "Чтобы задать его нажмите на кнопку 'Переносы, новые рабочие и выходные дни' . В открывшейся форме нажмите на стрелку со звездочкой и введите нужный год. График будет создан." _ , vbCritical, "Расчет даты окончания работы") Exit Sub End If rst.MoveLast
Me.DataEP.SetFocus Me.DataEP.Text = rst.Fields("tDay") & "." & rst.Fields("tMonth") & "." & rst.Fields("tYear")
rst.Close
Set rst = Nothing
Me.btnED.SetFocus
On Error GoTo 0 Exit Sub
btnED_Click_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure btnED_Click of VBA Document Form_frmDataEnd" End Sub
|
этот код добавляет N количество рабочих дней к имеющейся дате но все это происходит в форме. У меня задача сводиться к заполнению поля таблицы, на основании имеющегося с датой, с прибавлением определенного количества рабочих дней код учитывает праздники и выходные. заранее спасибо Это сообщение отредактировал(а) Akina - 9.9.2012, 21:31
|