以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]根据判断录入A表自动向B表写入对应数据 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=131296) |
||||
-- 作者:工匠 -- 发布时间:2019/2/22 13:18:00 -- [求助]根据判断录入A表自动向B表写入对应数据
万分感谢!
|
||||
-- 作者:y2287958 -- 发布时间:2019/2/22 14:05:00 -- 上个商业版的 |
||||
-- 作者:有点蓝 -- 发布时间:2019/2/22 14:15:00 -- 表A ,datacolchanged事件 Select Case e.DataCol.Name Case "第一列","第二列","第三列","第四列" Dim dr As DataRow = DataTables("表B").SQLFind("第一列=\'" & e.DataRow("第一列") & "\' and 第二列=\'" & e.DataRow("第二列") & "\' and 其它列条件自己补充完整") If dr Is Nothing Then dr = DataTables("表B").AddNew dr("第一列") = e.DataRow("第一列") dr("第二列") = ……其它列自己补充完整 dr.Save End If End Select |
||||
-- 作者:工匠 -- 发布时间:2019/2/22 17:14:00 -- 谢谢有点蓝老师, Select Case e.DataCol.Name Case "第一列","第二列","第三列","第四列" Dim dr As DataRow = DataTables("表B").SQLFind("第一列=\'" & e.DataRow("第一列") & "\' and 第二列=\'" & e.DataRow("第二列") & "\' and 第三列=\'" & e.DataRow("第三列") & "\' And 第四列=\'" & e.DataRow("第四列")) If dr Is Nothing Then dr = DataTables("表B").AddNew dr("第一列") = e.DataRow("第一列") dr("第二列") = e.DataRow("第二列") dr("第三列") = e.DataRow("第三列") dr("第四列") = e.DataRow("第四列") dr.Save End If End Select 实现了部分功能了,之前我没完全描述清晰, 需要是:1.表A的当前录入行第一、第二、第三、第四列综合内容和表B的所有行同一行的第一、第二、第三、第四列进行对比判断。(比如:表A录入行(第一列内容 湖南省 ,第二列内容 张家界 ,第三列 内容 旅游景点 ,第四列内容 游园项目1),就从表B里找(判断)有没有同一行内容是(第一列内容 湖南省 ,第二列内容 张家界 ,第三列 内容 旅游景点 ,第四列内容 游园项目1),如果没有4列完全一样内容的(比如表B前3列内容一样,第四列是 游园项目2),就在表B新增一行,将表A当前行对应第一、第二、第三、第四列内容写入到表B新增的行对应列,注:有时候是几列可能都不一样,这种情况下,都要新增写入。)如果表B已经有4列内容一样的行:(第一列内容 湖南省 ,第二列内容 张家界 ,第三列 内容 旅游景点 ,第四列内容 游园项目1),那么就不在表B新增行写入行。 2.如果表B有和表A录入行4列内容完全一样的,表A在录入后有修改其中列内容的,不需要修改表B对应列的内容(表B要不变) 3.要4列内容综合判断, 不是在表A录入1列后就在表B新增行写入列内容,现在是表A任何列发生变动,就在表B写入了,并且会在表B重复写入(表B不要有第一、二、三、四列完全重复的2行) 4.如果表A录入4列内容后,第一、二、三、四列内容行,在表B里有第一、二、三、四列同内容的行,表A的第六列内容等于表B的第六列内容。 谢谢各位老师,帮看看怎么完善,万分感谢!
[此贴子已经被作者于2019/2/22 17:22:06编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/2/22 17:19:00 -- Select Case e.DataCol.Name Case "第一列","第二列","第三列","第四列" If e.DataRow.Isnull("第一列") = False AndAlso e.DataRow.Isnull("第二列") = False AndAlso e.DataRow.Isnull("第三列") = False AndAlso e.DataRow.Isnull("第四列") = False Dim dr As DataRow = DataTables("表B").SQLFind("第一列=\'" & e.DataRow("第一列") & "\' and 第二列=\'" & e.DataRow("第二列") & "\' and 第三列=\'" & e.DataRow("第三列") & "\' And 第四列=\'" & e.DataRow("第四列")) If dr Is Nothing Then dr = DataTables("表B").AddNew dr("第一列") = e.DataRow("第一列") dr("第二列") = e.DataRow("第二列") dr("第三列") = e.DataRow("第三列") dr("第四列") = e.DataRow("第四列") dr.Save Else e.DataRow("第六列") = dr("第六列") End If End If End Select |
||||
-- 作者:工匠 -- 发布时间:2019/2/22 18:29:00 -- 谢谢y2287958老师,商业版的,我浏览器好像传不上去附件! |
||||
-- 作者:工匠 -- 发布时间:2019/2/22 18:35:00 -- 谢谢有点蓝老师,现在可以按4列一起综合判断写入了,但是如果表A里有4列都重复的数据,在表B也会重复写入(需要表B不要有4列完全一样的2行),还有就是表A录入4列表B有4列同内容的,表B的第六列不会带出在表A的第六列,请有时间再帮看看,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2019/2/22 20:26:00 -- Dim dr As DataRow = DataTables("表B").SQLFind("第一列=\'" & e.DataRow("第一列") & "\' and 第二列=\'" & e.DataRow("第二列") & "\' and 第三列=\'" & e.DataRow("第三列") & "\' And 第四列=\'" & e.DataRow("第四列") & "\'") |