首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试基于If标准的SetFocus

尝试基于If标准的SetFocus
EN

Stack Overflow用户
提问于 2013-12-06 17:09:57
回答 2查看 68关注 0票数 1

我正在尝试创建一个表单,其中两个员工在执行某项任务时会扫描他们的徽章。我想做的是确保两个雇员都扫描他们的徽章,而一个雇员不能扫描他的徽章两次。如果你愿意的话,这是一种激励责任的方法。我有一个条形码的图片,等于“确定”,用户将扫描时,消息框出现(以防万一有问题)。其他一切都很好--当Badge2 = "“时,我无法让焦点返回到"Badge2”。

代码:

代码语言:javascript
复制
Private Sub Badge2_AfterUpdate()
If Me.Badge2.Value = Me.Badge.Value Then
Me.Badge2.Value = ""
MsgBox "You Must Scan Another Employee's Badge to Confirm Result! Scan OK to Scan Another Employee's Badge."
End If

If Me.Badge2.Value = "" Then
Me.Badge2.SetFocus
Else
Me.EID2.Value = DLookup("EID", "EmployeeID", "BADGENUMBER = form.Badge2")
Me.Employee2.Value = DLookup("Name", "EmployeeID", "BADGENUMBER = form.Badge2")

Sleep 2000

End If

End Sub 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-06 18:08:32

抱歉,HansUp之前的代码混乱。还在努力适应这里的格式。我相信你写的钱是对的,但我只需要把Me.Badge2.Undo函数和Cancel = True函数放在一起,就可以保持对Badge2的关注。谢谢你容忍我的懒散和总是帮忙。

代码:

代码语言:javascript
复制
Private Sub Badge2_BeforeUpdate(Cancel As Integer)
If Me.Badge2.Value = Me.Badge.Value Then
    Me.Badge2.Undo
    Cancel = True
    MsgBox "You Must Scan Another Employee's Badge to Confirm Result! Scan OK to Scan Another Employee's Badge."

Else
    Me.EID2.Value = DLookup("EID", "EmployeeID", "BADGENUMBER = form.Badge2")
    Me.Employee2.Value = DLookup("Name", "EmployeeID", "BADGENUMBER = form.Badge2")

    Sleep 2000

End If

End Sub
票数 1
EN

Stack Overflow用户

发布于 2013-12-06 17:25:04

使用Badge2_BeforeUpdate事件而不是Badge2_AfterUpdate。当Badge2.Value不满足您的标准时,Cancel更新和焦点将保留在Badge2上。

这是一个简短的样本。对其进行细化,以添加您需要的其余功能。

代码语言:javascript
复制
Private Sub Badge2_BeforeUpdate(Cancel As Integer)
    If Me.Badge2.Value = Me.Badge.Value Or Me.Badge2.Value = "" Then
        Cancel = True
    End If
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20429664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档