Solnishka
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Люди! Помогите пожалуйста кто чем сможет (очень надо - диплом горит). В программировании я прям скажем новичок. Есть проблема: готовую программу на VBA для расчёта амортизации нужно переписать под Excel. Я уже бьюсь над ней довольно долго и никак не получается. [more] Option Compare Database Option Explicit Dim dblПервичнаяСтоимость As Double Dim dblОстаточнаяСтоимость As Double Dim intВремяАмортизации As Integer Dim intПериодРасчета As Integer Dim intКратность As Integer Dim blnПризнак As Boolean Dim dblВеличинаАмортизации As Double Private Sub Form_Load() Поле1.SetFocus Поле1.Text = "" Поле2.SetFocus Поле2.Text = "" Поле3.SetFocus Поле3.Text = "" Поле4.SetFocus Поле4.Text = "" Поле5.SetFocus Поле5.Text = "" Поле6.Visible = True Поле6.SetFocus Поле6.Text = "" Переключатель1.Value = True 'Включение стандартного метода расчета Переключатель2.Value = False 'Отключение метода расчета с кратностью Надпись9.Visible = False 'Скрытие надписи Поле1.SetFocus Поле6.Visible = False 'Скрытие поля End Sub Private Sub Кнопка1_Click() blnПризнак = True Поле1.SetFocus If Поле1.Text = "" Then blnПризнак = False Поле2.SetFocus If Поле2.Text = "" Then blnПризнак = False Поле3.SetFocus If Поле3.Text = "" Then blnПризнак = False Поле4.SetFocus If Поле4.Text = "" Then blnПризнак = False If blnПризнак = False Then MsgBox " Недостаточно данных для расчета", vbExclamation, "Амортизация" Exit Sub End If Поле1.SetFocus dblПервичнаяСтоимость = CDbl(Поле1.Text) Поле2.SetFocus dblОстаточнаяСтоимость = CDbl(Поле2.Text) Поле3.SetFocus intВремяАмортизации = CInt(Поле3.Text) Поле4.SetFocus intПериодРасчета = CInt(Поле4.Text) If dblПервичнаяСтоимость < dblОстаточнаяСтоимость Then MsgBox " Ошибка! Остаток больше начальной стоимости!", _ vbExclamation, "Амортизация" Поле1.SetFocus Exit Sub End If If intВремяАмортизации < intПериодРасчета Then MsgBox " Ошибка в сроке амортизации!", _ vbExclamation, "Амортизация" Поле3.SetFocus Exit Sub End If If Переключатель1.Value = True Then blnПризнак = True Else blnПризнак = False End If If blnПризнак = True Then dblВеличинаАмортизации = SYD(dblПервичнаяСтоимость, _ dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета) Else Поле6.SetFocus intКратность = CInt(Поле6.Text) dblВеличинаАмортизации = DDB(dblПервичнаяСтоимость, _ dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета, intКратность) End If Поле5.SetFocus Поле5.Text = CStr(dblВеличинаАмортизации) End Sub Private Sub Кнопка22_Click() Dim strFrm As String strFrm = "Расчет Амортизации" DoCmd.Close acForm, strFrm End End Sub Private Sub Переключатель1_Click() Переключатель2.Value = False Надпись9.Visible = False Поле6.Visible = False End Sub Private Sub Переключатель2_Click() Переключатель1.Value = False Надпись9.Visible = True Поле6.Visible = True Поле6.SetFocus 'Поле6.Text = "" Поле6.Value = "" End Sub [/more] |