Диалоговое окно - Да,Нет

Автор AlexWorkStream, 9 ноября 2017, 15:01

0 Пользователи и 1 гость просматривают эту тему.

AlexWorkStream

Подскажите пожалуйста, как правильно сделать  диалоговое окно - Да,Нет? Дело в том, что при использовании vbYesNo, все равно, выводится только одна кнопка - ОК.

rami

Sub Main
Dim n%, s$
n=msgbox("Это диалоговое окно?",4,"Ответь!")
s=IIf(n=6,"Да","Нет")
msgbox(s,0,"Ответил:")
End Sub

AlexWorkStream

Цитата: rami от  9 ноября 2017, 13:15
Dim n%, s$
n=msgbox("Это диалоговое окно?",4,"Ответь!")
s=IIf(n=6,"Да","Нет")
msgbox(s,0,"Ответил:")

Вы не могли бы проверить, то что я сделал? Я только учусь...
Все работает как мне надо, но только хотелось бы мнения эксперта по правильности написания.

Sub DialogDaNet
Dim n%, s$
n=msgbox("Занести данные в базу?",4,"Внимание!")
If (n=6) then
Call NovajaKategorija
msgbox("Данные занесены в базу",0,"Внимание!")
End If
If (n=7) then
msgbox("Операция отменена",0,"Внимание!")
End If
End Sub

rami

Цитата: AlexWorkStream от  9 ноября 2017, 14:18Вы не могли бы проверить, то что я сделал? Я только учусь...
Все работает как мне надо, но только хотелось бы мнения эксперта по правильности написания.
В общем не плохо, но немного грубо (не обтёсано) и не логично: если ответили "да", то проверки на "нет" проводить не нужно и наоборот.

Лучше так:
Sub DialogDaNet1
Dim n%
n=msgbox("Занести данные в базу?",4,"Внимание!")
If n=7 Then msgbox("Операция отменена",0,"Внимание!") : Exit Sub
NovajaKategorija
msgbox("Данные занесены в базу",0,"Внимание!")
End Sub


Проверяем если ответ "нет", то сообщаем и немедленно выходим из макроса, если ответ "да", выполняем действие и отчитываемся о завершении.

AlexWorkStream

Цитата: rami от  9 ноября 2017, 14:43Лучше так
Спасибо огромное! Продолжу осваивать данную тему...