以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关联列数量太少  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8896)

--  作者:lihe60
--  发布时间:2010/12/22 12:14:00
--  关联列数量太少
根据需要,有时需要十几个列作为关联列,现在只能关联八列,能不能增加关联列的数量?
--  作者:狐狸爸爸
--  发布时间:2010/12/22 12:20:00
--  

1、请反思自己的设计。

2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。

[此贴子已经被作者于2010-12-22 12:21:59编辑过]

--  作者:实话实说
--  发布时间:2010/12/22 13:57:00
--  
以下是引用狐狸爸爸在2010-12-22 12:20:00的发言:

1、请反思自己的设计。

2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。

[此贴子已经被作者于2010-12-22 12:21:59编辑过]

我就是用三列(产品分类、型号、规格)来关联的,一开始我也觉得不妥,但实在没有好的办法才为之,现在运行还正常。

最初,我用主表的_Identify与子表的产品ID关联,正常的操作是:首先在主表增加记录,然后在子表增加对应的记录,产品ID与_Identify一一对应,这些是通常的设计和操作。但是,公司的同事觉得几万个产品品种一条一条的增加记录太费工费时,希望能将EXCEL表的产品数据导入或复制过来,由于产品ID的限制而难以实现。

还有一种方案,就是产品编码,这是系统设计的最佳方案,然而编码的设计却不是那么容易的,许多企业的信息化就是迈不过这个坎而被挡在门外,一些使用者强烈拒绝编码。

希望高手指点。


--  作者:狐狸爸爸
--  发布时间:2010/12/22 14:43:00
--  

我始终没有理解三楼的说法,尽管关联列可以自动输入,但自动输入不是必须通过关联列来实现的;单列关联,甚至不关联,都也可以自动输入和更新很多列的内容。


--  作者:实话实说
--  发布时间:2010/12/22 15:11:00
--  

来个例子吧

表A与表B关联,现在想将表C的数据复制到表B,如何让这些数据与表A关联。

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


--  作者:狐狸爸爸
--  发布时间:2010/12/22 15:23:00
--  求帮助设计一个汽车进销存表格

复制数据后,在命令窗口执行一次:

 

For Each dr1 As DataRow In DataTables("表A").DataRows
    For Each dr2 As DataRow  In DataTables("表B").Select("型号 = \'"  & dr1("型号") & "\' And 规格 = \'"  & dr1("规格") & "\'")
        dr2("产品ID") = dr1("_Identify")
    Next
    For Each dr2 As DataRow In dr1.GetChildRows("表B")
      If dr1("型号") <> dr2("型号") OrElse dr1("规格") <> dr2("规格") Then
            dr2("产品ID") = Nothing
        End If
    Next
Next

 

呵呵,早点做个这样简单的例子上来说明问题,也许你的系统会做得更好啊。
两列是可以接受的,如果三列就多了。

 

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

 

[此贴子已经被作者于2010-12-22 15:30:08编辑过]

--  作者:实话实说
--  发布时间:2010/12/22 15:42:00
--  
ok
--  作者:mr725
--  发布时间:2010/12/22 19:54:00
--  

      If dr1("型号") <> dr2("型号") OrElse dr1("规格") <> dr2("规格") Then
            dr2("产品ID") = Nothing
        End If

这一段不理想··, 应该在父表空行对应列中自动填入子表有父表没有dr2("型号")  和 dr2("规格") 并将父表的_identify值 填回到子表的 dr2("产品ID") 中 ,如果父表行数不够则应增加行来继续完成上述内容。。。。。

 


--  作者:lihe60
--  发布时间:2010/12/27 13:05:00
--  
以下是引用狐狸爸爸在2010-12-22 12:20:00的发言:

1、请反思自己的设计。

2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。

[此贴子已经被作者于2010-12-22 12:21:59编辑过]

我反思过自己的设计,还是感觉应该增加关联列的个数。


--  作者:狐狸爸爸
--  发布时间:2010/12/27 14:36:00
--  

呵呵,那就继续反思,直到不超过3列为止。

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

 

 

[此贴子已经被作者于2010-12-27 14:36:09编辑过]