以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]]如何在主表插入行的同时,副表中也能插入行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105555)

--  作者:33chyh
--  发布时间: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


--  作者:有点甜
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2017/8/22 14:41:00
--  

做不到这样的【同步】。

 

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

 

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


--  作者:33chyh
--  发布时间:2017/8/22 23:42:00
--  
谢谢老师