Foxtable(狐表)用户栏目专家坐堂 → [求助]关于重复和条件AB表自动写入


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

主题:[求助]关于重复和条件AB表自动写入

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
[求助]关于重复和条件AB表自动写入  发帖心情 Post By:2019/3/9 15:49:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:重复及写入.foxdb


老师好:
       请教下,关于不允许重复和表A根据条件,点击检查写入将部分列写入到表B,请帮看看怎么实现,谢谢!

1.在编辑表A时,是将1.2.3.4列文本合并到第六列的,如果第六列内容在表B的第六列没有相同的内容,在点击“检查写入”时,把表A1.2.3.4列内容写入到表B的1.2.3.4列,并保持表A表B,否则不写入。
2.在编辑表B时,是将1.2.3.4列文本合并到第六列的,如果第六列内容在表B的第六列已经有相同的内容了,提示“第六列内容已经存在,请重新录入新的不重复内容”。(原表事件判断对编辑第六列有用,编辑1.2.3.4列没用)

谢谢!


[此贴子已经被作者于2019/3/9 16:23:19编辑过]

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


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/9 16:35:00 [只看该作者]

1、自己补充完整

For Each r As Row In Tables("表A").Rows
    Dim dr As DataRow = DataTables("表B").Find("第一列='" & r("第一列") & "' and 第二列 ='" & r("第二列") & "'")
    If dr Is Nothing Then
        dr = DataTables("表B").AddNew
        dr("第一列") = r("第一列")
    End If
Next
DataTables("表A").Save()
DataTables("表B").Save()

2、去掉表B的DataColChanging事件代码

DataColChanged事件改为

Dim dr As DataRow = e.DataRow

Select Case e.DataCol.Name

    Case "第一列","第二列","第三列","第四列"

        If dr.IsNull("第一列") = False AndAlso dr.IsNull("第一列") = False AndAlso dr.IsNull("第三列") = False AndAlso dr.IsNull("第四列") = False Then

            If e.DataTable.Compute("Count([_Identify])","第一列 = '" & dr("第一列") & "' And 第二列 = '" & dr("第二列") & "' And 第三列 = '" & dr("第三列") & "' And 第四列 = '" & dr("第四列") & "'") > 1 Then

                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

                e.DataRow(e.DataCol.Name) = e.OldValue '取消输入

            Else

                dr("第六列") = dr("第一列") & "" & dr("第二列") & "" & dr("第三列") & "" & dr("第四列")

            End If

        End If

        

End Select


 回到顶部