Foxtable(狐表)用户栏目专家坐堂 → 表与表间的数据引用问题求指教?


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

主题:表与表间的数据引用问题求指教?

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
表与表间的数据引用问题求指教?  发帖心情 Post By:2015/1/19 11:15:00 [只看该作者]

版主:关于表与表之间的数据列问题不是很明白,有表1、表2、表3等表,它们之间的数据引用如不用按钮(写相应代码)的话,是不是必需设为父子表?

假设表1 有“工作单位”“姓名”“身份证号码”“性别”“参加工作时间”等列,表2也有这些列,但多了“成绩”列,我的目标是,表1的列内容输入后,表2的相关列会自动填入,但我表2中不想要“参加工作时间”列,按我现在的方法用按钮点击从表1导到表2去,但表2中必需建立和表1同样的列(表2可以多成绩列);

同样表3用表2的数据也是一样,如果还有表4要用表3的数据,表5要用表4的数据,那么后面的的表的列数只会越来越多,但有些列在后面的表中可以不要;

 

现在问题是我如果不把列设成一样,导入的时候就会提示少某某列,这个问题该怎么解决?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/19 11:18:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 11:20:00 [只看该作者]

谢谢版主!我去学习、学习。

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 13:13:00 [只看该作者]

If e.DataCol.Name = "身份证号码" Then
    Dim nms() As String = {"工作单位","县公司","姓名","性别","身份证号码"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("报名登记表").Find("[身份证号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If

 

If e.DataCol.Name = "身份证号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("工作单位") = Nothing
        e.DataRow("县公司") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("性别") = Nothing
        e.DataRow("身份证号码") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("报名登记表").Find("[身份证号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("工作单位") = dr("工作单位")
            e.DataRow("县公司") = dr("县公司")
            e.DataRow("姓名") = dr("姓名")
            e.DataRow("性别") = dr("性别")
            e.DataRow("身份证号码") = dr("身份证号码")
        End If
    End If
End If

 

版主,上述两段代码是不是功能等同?可以去掉其一吗?


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 13:14:00 [只看该作者]

我看帮助,有点糊涂了,想做到两表之间数据引用,表1变,表2也自动变

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 13:22:00 [只看该作者]

自己实践,应该已搞定,因为想代码看起来简洁些,所以去掉了下面这段代码,发现效果还是一样(都是表2的datacolchanged事件中的)。

 

If e.DataCol.Name = "身份证号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("工作单位") = Nothing
        e.DataRow("县公司") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("性别") = Nothing
        e.DataRow("身份证号码") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("报名登记表").Find("[身份证号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("工作单位") = dr("工作单位")
            e.DataRow("县公司") = dr("县公司")
            e.DataRow("姓名") = dr("姓名")
            e.DataRow("性别") = dr("性别")
            e.DataRow("身份证号码") = dr("身份证号码")
        End If
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/19 13:59:00 [只看该作者]


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/19 14:00:00 [只看该作者]

一个是表A引用表B   一段是表B更新表A  别搞混

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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 20:51:00 [只看该作者]

If e.DataCol.Name = "身份证号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("工作单位") = Nothing
        e.DataRow("县公司") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("性别") = Nothing
        e.DataRow("身份证号码") = Nothing
        e.DataRow("文化程度") = Nothing
        e.DataRow("鉴定等级") = Nothing
        e.DataRow("申报鉴定工种") = Nothing
        e.DataRow("鉴定批次") = Nothing
        e.DataRow("申报性质") = Nothing
        e.DataRow("备注") = Nothing
        e.DataRow("照片") = Nothing
        e.DataRow("是否合格") = Nothing
        e.DataRow("理论考否") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("报名登记表").Find("[身份证号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("工作单位") = dr("工作单位")
            e.DataRow("县公司") = dr("县公司")
            e.DataRow("姓名") = dr("姓名")
            e.DataRow("性别") = dr("性别")
            e.DataRow("身份证号码") = dr("身份证号码")
            e.DataRow("文化程度") = dr("文化程度")
            e.DataRow("鉴定等级") = dr("鉴定等级")
            e.DataRow("申报鉴定工种") = dr("申报鉴定工种")
            e.DataRow("鉴定批次") = dr("鉴定批次")
            e.DataRow("申报性质") = dr("申报性质")
            e.DataRow("备注") = dr("备注")
            e.DataRow("照片") = dr("照片")
            e.DataRow("是否合格") = dr("是否合格")
            e.DataRow("理论考否") = dr("理论考否")
        End If
    End If
End If

版主,这段代码能再简化些吗?这要再多些列,就更长了。


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


加好友 发短信
等级:二尾狐 帖子:531 积分:3216 威望:0 精华:0 注册:2014/12/2 9:23:00
  发帖心情 Post By:2015/1/19 20:52:00 [只看该作者]

本来事件里就还有其它方面的代码,如有需要再加其它的,看都看不转,有错都难找!

 回到顶部
总数 22 1 2 3 下一页