Foxtable(狐表)用户栏目专家坐堂 → 关联表代码修改


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

主题:关联表代码修改

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


加好友 发短信
等级:小狐 帖子:358 积分:2573 威望:0 精华:0 注册:2020/7/24 10:30:00
关联表代码修改  发帖心情 Post By:2022/8/4 11:55:00 [只看该作者]

请求怎么修改?

Dim dr As DataRow
If dr.current IsNot Nothing Then
    Dim r As Row = Tables("评价程序表").addnew()
    r("评价任务编号") = dr("任务编号")
    forms("评价信息窗口").open()
Else
    Messagebox.show("没有选中行")
End If
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/4 11:57:00 [只看该作者]

这代码要做什么功能?在什么事件的?

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


加好友 发短信
等级:小狐 帖子:358 积分:2573 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)这代码要做什么功能?在什么事件的?...  发帖心情 Post By:2022/8/4 12:32:00 [只看该作者]

我写在菜单的Click事件里面
  • 要求的效果是: 选中表“评价任务清单”当前行  ,点击  Click  ,然后 表 “评价程序表” 新增一行 ,且 “评价任务清单” 中的 任务编号 自动填写到 “评价程序表”  中的 评价任务编号 中 。
我改成这样,但是有报错:
Dim dt As DataTable = DataTables("评价任务清单")
Dim dr As DataRow
If Tables("内部控制评价任务清单").current IsNot Nothing Then
    Dim r As Row = Tables("评价程序表").addnew()
    r("评价任务编号") = dr("任务编号")
    forms("评价信息窗口").open()
Else
    Messagebox.show("没有选中行")
End If



图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/4 14:08:00 [只看该作者]

Dim dr As Row = Tables("评价任务清单").current
If dr  IsNot Nothing Then
    Dim r As Row = Tables("评价程序表").addnew()
    r("评价任务编号") = dr("任务编号")
    forms("评价信息窗口").open()
Else
    Messagebox.show("没有选中行")
End If


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


加好友 发短信
等级:小狐 帖子:358 积分:2573 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)Dim dr As Row = Tables("评价任务清...  发帖心情 Post By:2022/8/4 14:52:00 [只看该作者]

老师,如果我删除一行 

  • 选中表“评价任务清单”当前行  ,点击  Click  ,然后 表 “评价任务清单” 删除一行 ,且 “评价任务清单” 中的 <任务编号> 等于 “评价程序表”  中的 <评价任务编号> ,是一个“1对N”的关联关系,删除1,N全部被删除 。
  • 我写成
 Dim dr As Row = Tables("评价任务清单").current
Tables("评价任务清单").Current.Delete
    If dr  IsNot Nothing Then
           DataTables("评价程序表").deletefor("评价任务编号='" & e.DataRow("任务编号") & "'")
    Else
        Messagebox.show("没有选中行")
    End If
End If

我改成这样,但是有报错


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


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/4 15:52:00 [只看该作者]

 Dim dr As Row = Tables("评价任务清单").current
    If dr  IsNot Nothing Then
dr .Delete
           DataTables("评价程序表").deletefor("评价任务编号='" & dr ("任务编号") & "'")
    Else
        Messagebox.show("没有选中行")
    End If
End If

注意代码的顺序,先用了在判断没有任何用处。应该先判断再用

多看几遍:http://www.foxtable.com/webhelp/topics/0604.htm,不同事件e参数是不一样的,不能乱套

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


加好友 发短信
等级:小狐 帖子:358 积分:2573 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝) Dim dr As Row = Tables("评价...  发帖心情 Post By:2022/8/4 16:14:00 [只看该作者]


老师:
      删除的时候的 一对多 的效果可以是可以了,但是删除后会出现以下两个弹窗提示,报错。
是不是因为关联表 “评价程序表” 信息删除掉了  ,但是焦点还在“评价任务清单”造成的?



图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/4 16:31:00 [只看该作者]

换个处理顺序
Dim dr As Row = Tables("评价任务清单").current
    If dr  IsNot Nothing Then
           DataTables("评价程序表").deletefor("评价任务编号='" & dr ("任务编号") & "'")
dr .Delete
    Else
        Messagebox.show("没有选中行")
    End If
End If

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


加好友 发短信
等级:小狐 帖子:358 积分:2573 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)换个处理顺序Dim dr As Row = Tables...  发帖心情 Post By:2022/8/4 16:54:00 [只看该作者]

更换一下顺序以后就OK了,没有问题了.

 回到顶部