ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 392|回复: 1

[求助] 在不使用AddNew或Edit的情况下,更新(Update)或取消更新(CancelUpdate)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-27 14:48 | 显示全部楼层 |阅读模式
本帖最后由 rendiule01 于 2023-5-27 14:52 编辑

是条形码没有完成录入,就跑到qty控件录入数量 此时弹出提示信息 “在不使用AddNew或Edit的情况下,更新(Update)或取消更新(CancelUpdate)” 之后就是整个窗体卡住了,死机无法动弹了,根本没法条形码再次获得焦点


image.jpg



Private Sub PRD_NO_AfterUpdate()                           '品号更新后事件
    Me.Dirty = False '允许更新
    Me![prd_name] = Me!prd_no.Column(1)
    Me![wh] = Me!prd_no.Column(2)
    'Me![up] = 0
    Me![zk] = 100
    Me![ut] = Me!prd_no.Column(4)
    Me![tax] = Me![prd_no].Column(5)
    Me![tax_id] = Me.Parent![tax_id]
    Me![NW] = Nz(Me![prd_no].Column(6), 0)
    If IsNull(Me![KW]) Then
        Me![KW] = Me!prd_no.Column(3)
        Me![prd_wh_kw] = Me![prd_no] + Me![wh] + Me![KW]
        Me![qty_wh] = Nz(DLookup("qty_wh", "WL_TF", "prd_no='" & Me!prd_no.Column(0) & "' and wh='" & Me![wh] & "' and kw=" & SQLTEXT(Me![KW])), 0)    '库存数量     
    End If
    Me![qty] = 0
    Me![qty].SetFocus
    Me.Dirty = False                                           '允许更新
End Sub

Private Sub Form_Error(DataErr As Integer, Response As Integer) '窗体出错事件
    Const conDuplicateKey = 3022
    Dim strprd_wh_kw As String
    strprd_wh_kw = Nz(Me.prd_wh_kw)
    Debug.Print DataErr
    If DataErr = conDuplicateKey Then
        Response = acDataErrContinue
        MsgboxEx "同样的品号、仓库、库位不能重复添加,请直接修改出库数量。", vbExclamation + vbOKOnly, AryouStr, 3000
        Me.Undo
        'Me!kw = Null
        Me.Recordset.MoveFirst
        Me.Recordset.FindFirst "prd_wh_kw=" & SQLTEXT(strprd_wh_kw)
        Me.qty.SetFocus   
    End If
End Sub
  
Private Sub qty_AfterUpdate()
    If Me![qty].value > 0 Then
        If Not IsNull(Me![wh]) And Not IsNull(Me![prd_no]) And Not IsNull(Me![KW]) Then
            Me![prd_wh_kw] = Me![prd_no] + Me![wh] + Me![KW]
            Me![qty_wh] = Nz(DLookup("qty_wh", "WL_TF", "prd_no=" & SQLTEXT(Me![prd_no]) & " and wh=" & SQLTEXT(Me![wh]) & " and KW=" & SQLTEXT(Me![KW])), 0)
        End If
    End If
End Sub

Private Sub qty_LostFocus()
Me![up].SetFocus
End Sub

TA的精华主题

TA的得分主题

发表于 2023-5-28 07:28 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
盟威的?
一般不支持这样输入,因为,扫码枪有时会自动加一个回车。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 12:01 , Processed in 0.034873 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表