Foxtable(狐表)用户栏目专家坐堂 → [求助]根据判断录入A表自动向B表写入对应数据


  共有2489人关注过本帖树形打印复制链接

主题:[求助]根据判断录入A表自动向B表写入对应数据

帅哥哟,离线,有人找我吗?
工匠
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
[求助]根据判断录入A表自动向B表写入对应数据  发帖心情 Post By:2019/2/22 13:18:00 [只看该作者]


老师好,请老师帮做一个例子:表A和表B都有几列列名是一样的,在录入表A行第一列、第二列、第三列、第四列的是时候,如果录入行的第一列、第二列、第三列、第四列这4列内容和表B的其中行第一列、第二列、第三列、第四列对应列内容有其中一列或多列有不一致时,那么将表B自动增加1行,把表A录入行的这几列数据自动写入到表B的对应新增的行列里,如果表A录入行的这4列,表B已经有1行和录入的表A行4列内容一致的,就不新增表B行列内容。(备注:启动项目表A和表B有2种加载情况:1.全部加载数据  2.只加载了部分数据)。
万分感谢!

 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/2/22 14:05:00 [只看该作者]

上个商业版的

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106022 积分:539203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/2/22 17:14:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:图片1.jpg
图片点击可在新窗口打开查看

谢谢有点蓝老师,
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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106022 积分:539203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/2/22 18:29:00 [只看该作者]

谢谢y2287958老师,商业版的,我浏览器好像传不上去附件!

 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/2/22 18:35:00 [只看该作者]

谢谢有点蓝老师,现在可以按4列一起综合判断写入了,但是如果表A里有4列都重复的数据,在表B也会重复写入(需要表B不要有4列完全一样的2行),还有就是表A录入4列表B有4列同内容的,表B的第六列不会带出在表A的第六列,请有时间再帮看看,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106022 积分:539203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/22 20:26:00 [只看该作者]

            Dim dr As DataRow = DataTables("表B").SQLFind("第一列='" & e.DataRow("第一列")  & "' and 第二列='" & e.DataRow("第二列")  & "' and  第三列='" & e.DataRow("第三列")  & "' And  第四列='" & e.DataRow("第四列") & "'")


 回到顶部