Foxtable(狐表)用户栏目专家坐堂 → [求助]关联表,父表连续增加行,子表只增加一行


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

主题:[求助]关联表,父表连续增加行,子表只增加一行

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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
[求助]关联表,父表连续增加行,子表只增加一行  发帖心情 Post By:2017/3/18 14:21:00 [只看该作者]

具体环境:
1.父表和子表,都是后台数据表。
2.项目打开后,父表不加载,子表全部加载。
3.父表是在listview中显示,在listview中有添加行的按钮。参考的是帮助P1192
出现现象:父表增加行多次后,子表只增加一行,请指点!

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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
  发帖心情 Post By:2017/3/18 15:20:00 [只看该作者]

老师们,有思路吗?

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


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

贴出相关代码,或者上传例子

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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
  发帖心情 Post By:2017/3/18 15:38:00 [只看该作者]

父表datacolchanged代码
Select Case e.DataCol.Name
    Case "编号"  'P596
        If e.DataRow.IsNull("编号") = False Then
            If e.DataRow.GetChildRows("基本信息").Count = 0 Then
                Dim dr As DataRow = DataTables("基本信息").AddNew()
                dr("编号") = e.DataRow("编号")
                dr("姓名") = e.DataRow("姓名")
                dr("手机") = e.DataRow("手机")
            End If
        End If
End Select

父表增加行在listview显示没有问题,只是子表每次打开项目仅能增加一行

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


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

是不是限制了加载数

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


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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
  发帖心情 Post By:2017/3/18 16:59:00 [只看该作者]

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


解压到D盘

我把代码精简到很少,几乎是照着手册做的小例子,然后子表全部加载、父表不加载,还是老样子
感觉是不是没有全部加载的问题,我们这个父表不能全部加载的啊

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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
  发帖心情 Post By:2017/3/19 9:13:00 [只看该作者]

我反复试了几个小时,苦恼
老师们,有进展、或者思路吗?
[此贴子已经被作者于2017/3/19 9:14:02编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/20 8:28:00 [只看该作者]

你的父表编号列,是一个自增量的主键,是在保存的时候自动生成的,只有在保存的时候触发一下,所以会自动增加一行。

你的子表编号列,也是一个自增量主键,父表和子表通过编号列渐渐关联,这就有问题了,主键是不能重复的,所以你接下来手工也无法在子表增加行了,所以父表每行在子表永远只有一行。

你没有明白关联的意思,也没有明白主键的意思。

主键是唯一识别某一行的,同一个表不能有两行的主键相同

关联只能通过主表的主键列建立

例如订单和订单明细,通过订单编号建立关联,订单表的主键是订单编号,订单明细表的主键绝对不能为订单编号,除非你一个订单只有一个明细。

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


加好友 发短信
等级:婴狐 帖子:49 积分:441 威望:0 精华:0 注册:2017/2/4 21:13:00
  发帖心情 Post By:2017/3/20 8:58:00 [只看该作者]

狐老大分析得很透,具体到我上面例子,它的父表和子表是一一对应的,父表主键是自动增量列,子表的的关联列设置的也是主键,是长整型(access里设置的,不是自动增量型)。
所以感觉不是因为子表里面的编号重复的问题,因为它是把父表的自动增量列的编号值复制过来的。
老大有修改的思路吗?(父表子表一对一对应,尽量不修改子表的主键)


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/20 11:13:00 [只看该作者]

不明白你表达的意思。

 

你要一一对应,那么你就把关联列的值一一对应起来,就行啊。


 回到顶部
总数 13 1 2 下一页