Foxtable(狐表)用户栏目专家坐堂 → [求助]]如何在主表插入行的同时,副表中也能插入行?


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

主题:[求助]]如何在主表插入行的同时,副表中也能插入行?

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


加好友 发短信
等级:幼狐 帖子:137 积分:1307 威望:0 精华:0 注册:2015/12/27 21:01:00
[求助]]如何在主表插入行的同时,副表中也能插入行?  发帖心情 Post By:2017/8/22 11:09:00 [只看该作者]

我在表“客观题答案”的DataColChanged事件中写入如下代码。想要实现在表“客观题答案”的“试卷号”列输入相关内容,其他三个表的“试卷号”列也随之写入与表“客观题答案”的“试卷号”列相同内容。如果在表“客观题答案”中插入一空行并输入内容,其他三个表也要产生相应的操作。但是插入表并输入内容后出现如下图片,同时不能实现插入操作,请问如何修改代码。

代码:

If e.DataRow("试卷号") IsNot Nothing Then
    Dim sjhdr1 = DataTables("错误学生与人数统计").find("[_Identify] = '" & e.DataRow("_Identify") & "'")
    Dim sjhdr3 = DataTables("考点频度统计").find("[_Identify] = '" & e.DataRow("_Identify") & "'")
    Dim sjhdr2 = DataTables("考点描述").find("[_Identify] = '" & e.DataRow("_Identify") & "'")
    sjhdr1("试卷号") = e.DataRow("试卷号")
    sjhdr2("试卷号") = e.DataRow("试卷号")
    sjhdr3("试卷号") = e.DataRow("试卷号")
    If sjhdr1 Is Nothing And sjhdr2 Is Nothing And sjhdr3 Is Nothing Then
        sjhdr1 = DataTables("错误学生与人数统计").AddNew
        sjhdr2 = DataTables("考点频度统计").AddNew
        sjhdr3 = DataTables("考点描述").AddNew
    End If
End If

提示信息如下:


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

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.foxdb


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 11:55:00 [只看该作者]

Select Case e.DataCol.name
    Case "试卷号"
        Dim sjhdr1,sjhdr2,sjhdr3 As DataRow
        If e.OldValue = Nothing Then
            sjhdr1 = DataTables("错误学生与人数统计").find("[试卷号] = '" & e.DataRow("试卷号") & "'")
            sjhdr3 = DataTables("考点频度统计").find("[试卷号] = '" & e.DataRow("试卷号") & "'")
            sjhdr2 = DataTables("考点描述").find("[试卷号] = '" & e.DataRow("试卷号") & "'")
        Else
            sjhdr1 = DataTables("错误学生与人数统计").find("[试卷号] = '" & e.oldvalue & "'")
            sjhdr3 = DataTables("考点频度统计").find("[试卷号] = '" & e.oldvalue & "'")
            sjhdr2 = DataTables("考点描述").find("[试卷号] = '" & e.oldvalue & "'")
        End If
        If sjhdr1 Is Nothing Then sjhdr1 = DataTables("错误学生与人数统计").AddNew
        If sjhdr2 Is Nothing Then sjhdr2 = DataTables("考点频度统计").AddNew
        If sjhdr3 Is Nothing Then sjhdr3 = DataTables("考点描述").AddNew
       
        sjhdr1("试卷号") = e.DataRow("试卷号")
        sjhdr2("试卷号") = e.DataRow("试卷号")
        sjhdr3("试卷号") = e.DataRow("试卷号")
End Select

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


加好友 发短信
等级:幼狐 帖子:137 积分:1307 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2017/8/22 12:38:00 [只看该作者]

老师您好!
刚才运行代码后发现如下问题:在表“客观题答案”列“试卷号”的第1行中填写数字1并回车后,其他三个表最后1行的后面会增加一个新行同时写入数字1。
我需要的是如果原有表中有空白单元格,例如四个表都有10列,在第1行写入数字1,其他三个表中的第1行也写入数字1。如果表“客观题答案”中最后1行后增加1行,那么其他三个表也在最后1行后再增加1行,并写入与表“客观题答案”列“试卷号”一样的内容。
[此贴子已经被作者于2017/8/22 12:38:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 14:41:00 [只看该作者]

做不到这样的【同步】。

 

1、你可以先把空白数据删除,这样不就没问题了?

 

2、你对表格进行排序,不也没问题了?


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


加好友 发短信
等级:幼狐 帖子:137 积分:1307 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2017/8/22 23:42:00 [只看该作者]

谢谢老师

 回到顶部