以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 2表对比删除数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130112) |
-- 作者:蓝蚂蚁 -- 发布时间:2019/1/13 22:23:00 -- 2表对比删除数据 窗口中,按钮1的代码: If Tables.Contains("临时表")=True Then For Each r As Row In Tables("计划单").rows Dim dc As DataRow =DataTables("临时表").Find("目录编号=\'" & r("目录编号") & "\'") \'在临时表中查找 If dc IsNot Nothing Then \'如果临时表有 Dim dr As DataRow = DataTables("计划单").Find("[目录编号] = \'"& dc("目录编号") &"\'") ‘在计划单中查找该条记录 If dr IsNot Nothing Then \'如果找到,则定位该条信息,目的是能看到该条信息 Dim wz As Integer = Tables("计划单").FindRow(dr) If wz >= 0 Then Tables("窗口_Table1").Position = wz End If End If Dim Result As DialogResult Result=MessageBox.Show("该耗材前计划未送货"& vbcrlf &"名称:"& dc("通用名称") &"规格型号:"& dc("规格型号") &""& vbcrlf &"数量:"& dc("未送数量") &""& dc("单位") &"!"& vbcrlf &"是否继续打这个耗材的计划?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.No Then DataTables("计划单").DeleteFor("[目录编号] = \'"& dc("目录编号") &"\'") Else e.Cancel = True End If End If Next Else MessageBox.Show("无[临时表]的表!", "提示") End If 说明:从计划单表中的第一条到最后一条,历遍目录编码,每条目录编码都在临时表中找出相同目录编码的记录。如果在临时表中找到该目录编码,然后在窗口_Table1(绑定计划单的副本表)定位,之后提示相关信息,在弹出的对话窗口中,点击否,则在计划单中(或窗口_Table1)删除该条记录,点击是就不删该条记录。 现在问题:在实际操作中,如果临时表中有相同的目录编码,会在窗口_Table1中跳开,要点击按钮1三次,才能删除(假如每次弹出对话框,都点击否)
|
-- 作者:有点甜 -- 发布时间:2019/1/13 22:39:00 -- 删除要这样删
http://www.foxtable.com/help/topics/0599.htm
|
-- 作者:蓝蚂蚁 -- 发布时间:2019/1/13 22:51:00 -- 看了帮助,是不是把:DataTables("计划单").DeleteFor("[目录编号] = \'"& dc("目录编号") &"\'") 改成下面的代码: Tables("窗口_Table1").Current.Delete() 但执行代码跟反应的问题一样,烦老师指点
[此贴子已经被作者于2019/1/13 22:50:56编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/13 23:04:00 -- 认认真真看帮助文档啊。从后面往前面循环和删除啊
http://www.foxtable.com/help/topics/0599.htm
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=130085
|