2017-04-05 10 views
1

回避策を探しています。好ましくは、ユーザフォームの束を作ることを伴わないもの。VBAにアクセス - Msgbox

背景:私はオフィス内外のアイテムをスキャンするためのアクセスDBを持っています。各アイテムはスキャンされた後、そのアイテムがオフィスを離れても問題ないことを確認します。そうでない場合、msgboxが呼び出され、「このアイテムは較正されていません。あなたはそれを取ってもよろしいですか?

問題:アイテムをスキャンすると、バーコードとキャリッジリターンの数値が表示されます。これは、スキャンフォームとうまく動作します。ただし、msgboxが表示されたときにユーザーが注意を払っていない場合、次の項目をスキャンすると、復帰はmsgboxのデフォルト値をクリックして閉じ、ユーザーは誰も賢明ではありません。

一時的な解決策:yes/noの後に3番目のボタン(キャンセル)を追加して新しいデフォルト値にしました。新しいアイテムをスキャンするとそのアイテムがクリックされ、msgboxが再び開きます。したがって、ユーザーは最終的に注意する必要があります。それは本当に良い解決策ではありません。

Dim ans As Integer 

'2 is vbCancel 
ans = 2 

Do While ans = 2 

    ans = MsgBox("Test", vbYesNoCancel + vbDefaultButton3 + vbSystemModal + vbExclamation) 
    if ans = 2 then 
     'Restart Loop 
    elseif ans = vbYes 
     'Do something 
    elseif ans = vbNo 
     'Do something else 
    end if 
Loop 

ので、それぞれが、私は避けることを望むだろう何かである個々のユーザーフォームを作り、メッセージボックスが表示されることができる多くの異なる場合があります。

おかげで、

Brockの

答えて

0

は、 'はい' またはチェックボックス(フォーム)のような値を入力するようにユーザーを強制します。

関連する問題