以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关联定位的为题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129690)

--  作者:紫色幽魂
--  发布时间:2019/1/3 22:39:00
--  [求助]关联定位的为题
做了一个窗口,项目里面有4个表是一级一级的关联欢,1级→2级,2级→3级,3级→4级,这种关联的,在窗口中新增对应的子表并弹出对应的窗口对新增的表行的数据进行填写,用下面这种代码进行第一个父子表进行设置没有问题,但是设置第2个父子表明细时弹出对应的明细表就不是新增的这行数据了,用msgbox确定父表的行数没有问题,切换到对应的父表,光标也是在那个父行位置

e.Form.DropDownBox.CloseDropdown(False)
Dim dxgcbh As WinForm.TextBox = Forms("检验批信息录入").Controls("单项工程编号")
Dim i = Tables("无损_单项工程").FindRow("单项工程编号 = \'" & dxgcbh.text & "\'")
Tables("无损_单项工程").Position = i
Dim r As Row = Tables("无损_单项工程.无损_检验批").AddNew()
Forms("检验批信息录入_检验批添加").Open()
r.Save()
e.Form.DropDownBox.Value = r("检验批")


后来我将代码改为下面这种,增加明细时对应的父行信息是对的,但是数据明细的数据是在第一个,不是新增的最后一个
e.Form.DropDownBox.CloseDropdown(False)
Dim gcbh As WinForm.TextBox = Forms("检验批信息录入").Controls("工程编号")
Dim dxgcbh As WinForm.TextBox = Forms("检验批信息录入").Controls("单项工程编号")
Dim i0= Tables("无损_工程主表").FindRow("工程编号 = \'" & gcbh.text & "\'")
Dim i1= Tables("无损_单项工程").FindRow("单项工程编号 = \'" & dxgcbh.text & "\'")
Tables("无损_工程主表").Position = i0
Tables("无损_单项工程").Position = i1
Dim r As Row = Tables("无损_单项工程.无损_检验批").AddNew()
Forms("检验批信息录入_检验批添加").Open()
[此贴子已经被作者于2019/1/3 22:44:00编辑过]

--  作者:有点甜
--  发布时间:2019/1/3 22:41:00
--  
具体实例发上来说明。
--  作者:紫色幽魂
--  发布时间:2019/1/3 22:44:00
--  回复:(有点甜)具体实例发上来说明。
后来我将代码改为下面这种,增加明细时对应的父行信息是对的,但是数据明细的数据是在第一个,不是新增的最后一个
e.Form.DropDownBox.CloseDropdown(False)
Dim gcbh As WinForm.TextBox = Forms("检验批信息录入").Controls("工程编号")
Dim dxgcbh As WinForm.TextBox = Forms("检验批信息录入").Controls("单项工程编号")
Dim i0= Tables("无损_工程主表").FindRow("工程编号 = \'" & gcbh.text & "\'")
Dim i1= Tables("无损_单项工程").FindRow("单项工程编号 = \'" & dxgcbh.text & "\'")
Tables("无损_工程主表").Position = i0
Tables("无损_单项工程").Position = i1
Dim r As Row = Tables("无损_单项工程.无损_检验批").AddNew()
Forms("检验批信息录入_检验批添加").Open()

--  作者:有点甜
--  发布时间:2019/1/3 22:46:00
--  
具体实例发上来说明。
--  作者:紫色幽魂
--  发布时间:2019/1/3 22:55:00
--  回复:(有点甜)具体实例发上来说明。
解决了,新增明细表改为A.B.C这种就行了