Office中国论坛/Access中国论坛

标题: 添加子表数据及多列报表的问题请教 [打印本页]

作者: 简    时间: 2011-11-29 20:44
标题: 添加子表数据及多列报表的问题请教
如示例所示,主窗体的数据表明要重复使用的,当在子窗体输入明细数据时,主窗体的值自动传给子窗体的相应字段。现在我遇到的一个问题是,要求同一个客户名称下商品名称不能有重复。由于我是采用SQL,所以我不知该如何处理,还请大家帮忙。

我的另一个问题是:在做成报表时,为了节约纸张,我采用多列的方式。我想按客户名称分组,同时不同的客户为不同的页。如图所示,请问这种报表又如何设计呢?

[attach]47480[/attach]

[attach]47479[/attach]

附件:
[attach]47481[/attach]
作者: Henry D. Sy    时间: 2011-11-29 20:55
本帖最后由 Henry D. Sy 于 2011-11-29 20:55 编辑

建议增加销售表,然后该表与销售明细表建立一对多关系!
至于要求同一个客户名称下商品名称不能有重复,可以在更新前进行判断!

作者: Henry D. Sy    时间: 2011-11-29 20:56
报表可以在分组页脚添加分页符
作者: 简    时间: 2011-11-29 21:07
Henry D. Sy 发表于 2011-11-29 20:55
建议增加销售表,然后该表与销售明细表建立一对多关系!
至于要求同一个客户名称下商品名称不能有重复,可 ...

我的表很单一,所以觉得没必要建立一对多的关系。
主窗体上使用的那些字段,是为了提高输入效率,避免反复输入。

由于没采用一对多的关系,所以对于同一个客户名称下商品名称不能有重复的要求,不知该怎么编写。

另外报表的问题,可以给我的例子吗,当数据很多时,按客户名称来分组分页,我设计来总是不理想。

在此先谢了。
作者: Henry D. Sy    时间: 2011-11-29 21:38
采取主子表,可以避免数据冗余!
作者: Henry D. Sy    时间: 2011-11-30 01:22
[attach]47483[/attach]
作者: 简    时间: 2011-11-30 12:26
Henry D. Sy 发表于 2011-11-29 21:38
采取主子表,可以避免数据冗余!

我看了报表,这个报表不是我想要的样子。我设计的报表,同一个客户名称,只有第一页有标题,其它页上都没有。还有如果是分两列打印显示时,第二列没有标题栏,而且表也错位。

对了,我所说的两列中的列,是指在页面设置上的列,而不是字段所属的列。

我的打印结果想要我图片中的样子。
作者: todaynew    时间: 2011-11-30 17:33
本帖最后由 todaynew 于 2011-11-30 18:42 编辑
简 发表于 2011-11-30 12:26
我看了报表,这个报表不是我想要的样子。我设计的报表,同一个客户名称,只有第一页有标题,其它页上都没 ...


[attach]47495[/attach]

[attach]47494[/attach]
作者: 简    时间: 2011-11-30 20:22
todaynew 发表于 2011-11-30 17:33

报表的样式正是我想要的,我好好看看哈。
另外问问老汉,我的第一个问题,是不是必须采用一对多的方法才能解决吗?
作者: todaynew    时间: 2011-11-30 20:44
本帖最后由 todaynew 于 2011-11-30 20:56 编辑
简 发表于 2011-11-30 20:22
报表的样式正是我想要的,我好好看看哈。
另外问问老汉,我的第一个问题,是不是必须采用一对多的方法才 ...


第一个问题很简单,就是用子查询来排除已经输入的数据。

具体实现方法为:在客户ID的更新后事件中写如下代码:

Private Sub 客户ID_AfterUpdate()
Dim ssql As String
ssql = "SELECT 商品ID, 商品名称 FROM tbl商品代码 "
ssql = ssql & "where tbl商品代码.商品ID not in (select 商品ID from tbl销售明细 where 客户ID=" & Me.客户ID.Value & ")"
Me.商品ID.RowSource = ssql
End Sub




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3