Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
1、请反思自己的设计。
2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。
1、请反思自己的设计。
2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。
我就是用三列(产品分类、型号、规格)来关联的,一开始我也觉得不妥,但实在没有好的办法才为之,现在运行还正常。
最初,我用主表的_Identify与子表的产品ID关联,正常的操作是:首先在主表增加记录,然后在子表增加对应的记录,产品ID与_Identify一一对应,这些是通常的设计和操作。但是,公司的同事觉得几万个产品品种一条一条的增加记录太费工费时,希望能将EXCEL表的产品数据导入或复制过来,由于产品ID的限制而难以实现。
还有一种方案,就是产品编码,这是系统设计的最佳方案,然而编码的设计却不是那么容易的,许多企业的信息化就是迈不过这个坎而被挡在门外,一些使用者强烈拒绝编码。
希望高手指点。
我始终没有理解三楼的说法,尽管关联列可以自动输入,但自动输入不是必须通过关联列来实现的;单列关联,甚至不关联,都也可以自动输入和更新很多列的内容。
复制数据后,在命令窗口执行一次:
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
呵呵,早点做个这样简单的例子上来说明问题,也许你的系统会做得更好啊。
两列是可以接受的,如果三列就多了。
If dr1("型号") <> dr2("型号") OrElse dr1("规格") <> dr2("规格") Then
dr2("产品ID") = Nothing
End If
这一段不理想··, 应该在父表空行对应列中自动填入子表有而父表没有的 dr2("型号") 和 dr2("规格") 并将父表的_identify值 填回到子表的 dr2("产品ID") 中 ,如果父表行数不够则应增加行来继续完成上述内容。。。。。
1、请反思自己的设计。
2、我这辈子还没见过一个系统,有达到三列以上的关联,两列都极为罕见,至于三列,则只能在那些初次编程的人做的系统中看到。
我反思过自己的设计,还是感觉应该增加关联列的个数。
呵呵,那就继续反思,直到不超过3列为止。