以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  输入无效  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146401)

--  作者:rgbjwjb
--  发布时间:2020/2/23 1:11:00
--  输入无效
主表—“进货明细表”有五个字段:物品编号,物品性质,物品名称,物品规格 ,进货数量
子表—“领用明细表”有五个字段:物品编号,物品性质,物品名称,物品规格 ,领用数量
关联字段:物品编号,物品性质,物品名称,物品规格 
我想在录入“领用数量”时能有个提示:“库存数量仅剩XXX件,小于刚录入数据,请重新输入"请问代码如何编写?
请指教,谢谢!

--  作者:sloyy
--  发布时间:2020/2/23 13:06:00
--  

在子表一的ValidateEdit 事件里写代码:

If e.Col.Name = "领用数量" Then \'如果正在输入的是数量

    If e.Text > "" Then \'如果已经输入内容

Dim JHSL As Integer

JHSL=DataTables("表A").Compute("SUM(进货数量)","物品编号=\'" & e.Table.Current("物品编号") & "\' AND 物品性质=\'" & e.Table.Current("物品性质") & "\' AND 物品名称=\'" & e.Table.Current("物品规格") & "\' AND 物品编号=\'" & e.Table.Current("物品规格") & "\'")

        Dim v As Integer = int(e.Text) \'将输入的内容转换为整数

        If v> JHSL Then

 MessageBox.Show("库存数量仅剩" & JHSL & "件,小于刚录入数据,请重新输入","提示", MessageBoxButtons.OK, MessageBoxIcon.Information)

            e.Cancel = True \'则取消输入

End If


    End If

End If


ps: 你这个数据库设计非常糟糕,一般主表和子表只用一个字段关联,而且主表的这个关联字段必须保证唯一性,你应该增加一个 单据号,用来做主表和子表的关联字段

[此贴子已经被作者于2020/2/23 13:07:20编辑过]