Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 776

Раздел: Basic
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

Возникла проблема вставить дополнительное условие в данный код.

Основа данного кода это удаление данных, если объект TextBox1 пустой, и ввод данных, если объект имеет значение (основное условие If UserForm1.TextBox1.Text = "" Then).
Необходимо после Else (это я так думаю) вставить Module2.Change, данный макрос выполняет дополнительное удаление данных, когда происходит ввод данных.
Перед этим необходимо вставить условие

If CDate(Form_SelectDate.TextBox_Data) > CDate(Form_SelectDate.TextBox_Дата) Then
с выводом сообщения

If MsgBox("ВНИМАНИЕ" & vbCrLf & vbCrLf & "При вводе данных прихода, на прошедшую дату, Вы изменяете параметры движения ГСМ. Если за " & ComboBox_Month & " месяце производилась инвентаризация, списание, определение процента потерь то эти данные будут полностью удалены." & vbCrLf & "Продолжить ввод данных на выбранную дату?", vbYesNo + vbExclamation, " Информационное сообщение") = vbYes Then
Если пользователь нажимает кнопку “Да” данного сообщения, то выполняется макрос Module2.Change и код после Else.
Если пользователь нажимает кнопку “Нет” данного сообщения, то ни чего не происходит.
Если условие не дает результата “>” то в силу вступает основное условие, то есть выполняется код после Else без сообщения и без Module2.Change.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  
  2.  
  3.  
  4.  
  5.  
  6. If IsDate(SelectedDate) Then SelectedDate = CStr(DateValue(dt_2))
  7. Unload Me
  8. Exit Sub
  9. End If
  10.  
  11. Dim i As Integer
  12. For i = 1 To 444
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. .Cells(i, 28) = ""
  23. .Cells(i, 31) = ""
  24. End With
  25.  
  26. UserForm1.Label6.ForeColor = &HFF&
  27. Module2.Change
  28. End If
  29.  
  30. Else
  31.  
  32.  
  33.  
  34.  
  35.  
  36. .Cells(i, 3).Value = UserForm1.TextBox1.Text + .Cells(i, 3).Value
  37. .Cells(i, 4).Value = UserForm1.TextBox2.Text + .Cells(i, 4).Value
  38. .Cells(i, 5).Value = VBA.Val(VBA.Replace(UserForm1.TextBox3.Text, ",", ".")) + .Cells(i, 5).Value
  39. .Cells(i, 6).Value = VBA.Val(VBA.Replace(UserForm1.TextBox5.Text, ",", ".")) + .Cells(i, 6).Value
  40. .Cells(i, 7).Value = VBA.Val(VBA.Replace(UserForm1.TextBox6.Text, ",", ".")) + .Cells(i, 7).Value
  41. .Cells(i, 8).Value = UserForm1.TextBox7.Text + .Cells(i, 8).Value
  42. .Cells(i, 9).Value = UserForm1.TextBox8.Text + .Cells(i, 9).Value
  43. .Cells(i, 21).Value = Range("F10").Value
  44. .Cells(i, 22).Value = Range("G10").Value
  45. .Cells(i, 28).Value = Round(([d13] + [d16] + [d19] + [d22]), 0) + .Cells(i, 28).Value
  46.  
  47. End With
  48.  
  49. UserForm1.Label6.ForeColor = &HC00000
  50. End If
  51. End If
  52. Next
  53. End If


resseg Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: resseg (статус: Посетитель)
Вопрос отправлен: 15 февраля 2010, 23:20
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 17 февраля 2010, 13:36; участников в обсуждении: 2.
Alexey6522

Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 14:09 [#1]:

И опять лабораторные по программированию.
У тебя слишком мудреный код получился, ты бы прямо попросил, напишите мне прогу которая будет делать то, это и третье
resseg

resseg (статус: Посетитель), 16 февраля 2010, 14:27 [#2]:

Какие лабораторные, я самапал…
Точнее так.

If a = 1 Then 'Условие для выполнения кода. Public Условие As Integer
If b= 2 Then'Сообщение Ок не выполнение кода
Exit Sub
End If
If с = 3 Then 'Условие для поиск даты по совпадению, для выполнения основного условия.
If d = 4 Then 'Основное условие
If e = 5 Then 'Сообщение Да, Нет
s = 1
s = 2
End If
Else
If g = 6 Then 'Дополнительное условие
If z = 7 Then 'Дополнительное сообщение Да, Нет
s = 3
s = 2
End If
End If
End If
End If
End If 'Конец выполнение кода. Public Условие As Integer


При выполнение g = 6 выполняется z = 7 При выборе Да выполняются операторы s = 3, s = 2, при выборе Нет операторы s = 3, s = 2 не выполняются. Если g = 6 не выполняется, то выполняется только оператор s = 3 на основание условия d = 4
Alexey6522

Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 14:58 [#3]:

Зачем тогда было выкладывать прикрепленный файл с непонятным кодом, ты хочешь, что бы за тебя кто-то разобрался в нем???
resseg

resseg (статус: Посетитель), 16 февраля 2010, 15:07 [#4]:

Это ответ или вопрос на ответ?
Alexey6522

Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 15:19 [#5]:

мой тебе совет, переходи на С++ или delphi или может тебе именно на Basic нужно ;)
resseg

resseg (статус: Посетитель), 16 февраля 2010, 15:32 [#6]:

Я не профи, я просто задал вопрос, потому что заплутал в алгоритме данного кода, если есть спецы, то помогите разобраться. А иначе, зачем форум?
А на данный момент мне нужен VBA , то есть именно сейчас.
Alexey6522

Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 16:06 [#7]:

понятное дело, наверно участвуешь в олимпиаде
resseg

resseg (статус: Посетитель), 16 февраля 2010, 16:25 [#8]:

Это имеет значение для данного вопроса? Если да то отвечу.
Alexey6522

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 00:13 [#9]:

Если да, тогда тебе прямая дорога в раздел, лабы и олимпиады
resseg

resseg (статус: Посетитель), 17 февраля 2010, 08:04 [#10]:

Тогда нет.
На данный момент создаю проект для себя.
В принципе с кодом разобрался.
Осталось только оператор s=3 оформить в виде процедуры. Но почему то после оформления оператора в Sub оператор выдает ошибку.
Alexey6522

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 08:16 [#11]:

Стоило тогда задавать вопрос? Может нужно было чуточку подумать самому, а не прямиком на форум идти?
resseg

resseg (статус: Посетитель), 17 февраля 2010, 13:36 [#12]:

Странная постановка ответа…

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:47
Выполнено за 0.03 сек.