2017-04-05 79 views
1

在此寻找解决方法。最好不涉及制作一堆用户表单。访问VBA - Msgbox

背景:我有一个Access数据库用于扫描进出办公室的物品。扫描每件物品后,它会验证该物品是否可以离开办公室。如果不是,则调用msgbox并说“此项目超出校准范围,您确定要采取吗?” (vbyesno)

问题:扫描物品时,系统会从条码和回车中看到数字。这对于扫描表单非常有用。但是,如果用户在msgbox出现时没有注意并扫描下一个项目,则回车将单击msgbox中的默认值,关闭它并且用户不明智。

我的临时解决方案:在成为新的默认值的是/否后添加了第三个按钮(取消)。扫描一个新项目将点击它,它只是重新打开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 

有很多不同的情况下,msgbox可以出现,所以使每个用户形成一个单独的用户是我希望避免的。

感谢,

布洛克

回答

0

强制用户输入像 '是' 或一个复选框(形式)的值。