Office中国论坛/Access中国论坛

标题: 交叉表查询设计 [打印本页]

作者: ycxchen    时间: 2012-6-24 17:44
标题: 交叉表查询设计
我想设计一座位安排,建立交叉表查询设计,想达到如下图示的目的,请问,如何设计交叉表查询?我试用联合查询也不行,请大家帮忙[attach]49469[/attach][attach]49470[/attach]
作者: Henry D. Sy    时间: 2012-6-24 19:38
共有10行,每行30位,一共可以坐300个人,你把300条记录输入进去,不就行了。
作者: Henry D. Sy    时间: 2012-6-24 20:06
[attach]49471[/attach]
作者: ycxchen    时间: 2012-6-24 22:02
本帖最后由 ycxchen 于 2012-6-24 22:09 编辑
Henry D. Sy 发表于 2012-6-24 20:06


[attach]49473[/attach][attach]49472[/attach]谢谢,还是版主考虑到位,用“第一条记录”求值,但如果以此查询创建一座位安排窗体,在实际操作中不适合,详见上图,请问,有什么好思路?
作者: ycxchen    时间: 2012-6-24 22:08
Henry D. Sy 发表于 2012-6-24 19:38
共有10行,每行30位,一共可以坐300个人,你把300条记录输入进去,不就行了。

不是学生座位,是领导嘉宾参加活动的安排,受职务、经济实力、名望等因素影响,必须人工安排,没有统一的标准,在电脑上以数据表或表格式窗体录入,直观、方便,主要还是方便改动,随机及按录入顺序排序均不能,所以,不是简单输入就行这么简单的。盼版主提供思路,感谢!
作者: Henry D. Sy    时间: 2012-6-24 22:54
不要用交叉表作为记录源,而是用座位表作为记录源。
最终用座位表生成交叉查询!
作者: Henry D. Sy    时间: 2012-6-24 23:16
本帖最后由 Henry D. Sy 于 2012-6-24 23:22 编辑


你是不是想即时以交叉表的形式显示出来
[attach]49475[/attach]
作者: Henry D. Sy    时间: 2012-6-24 23:33
本帖最后由 Henry D. Sy 于 2012-6-24 23:38 编辑

当然还要控制座位重复安排,这个留给你自己限定吧!
[attach]49477[/attach]
作者: ycxchen    时间: 2012-6-25 09:17
Henry D. Sy 发表于 2012-6-24 23:33
当然还要控制座位重复安排,这个留给你自己限定吧!

版主英明,你的水平及态度就像“苹果”品牌一样为ACCESS爱好者所称赞!
作者: ycxchen    时间: 2012-6-25 09:33
请问版主,“查询.A”子窗体在数据库窗口为什么看不见的?究竟此子窗体如何创建的?
作者: Henry D. Sy    时间: 2012-6-25 09:49
本帖最后由 Henry D. Sy 于 2012-6-25 10:36 编辑
ycxchen 发表于 2012-6-25 09:33
请问版主,“查询.A”子窗体在数据库窗口为什么看不见的?究竟此子窗体如何创建的?


该子窗体的源对象并不是我们经常使用的窗体,而是直接使用查询(在这里是查询A)。
所以你当然找不到子窗体中的窗体(它根本就不存在)
为何要用查询作为源对象呢?因为交叉表的列数是变化的,如果用窗体作为源对象不好处理!!
作者: ycxchen    时间: 2012-6-25 12:13
Henry D. Sy 发表于 2012-6-25 09:49
该子窗体的源对象并不是我们经常使用的窗体,而是直接使用查询(在这里是查询A)。
所以你当然找不到子 ...

十分感谢指教!但查询A也找不到呀?如何创建的?
作者: Henry D. Sy    时间: 2012-6-25 12:52
就是A查询呀
作者: ljp518    时间: 2012-6-25 13:32
Henry D. Sy ,很不错的例子,值得学习!
作者: ycxchen    时间: 2012-6-26 00:16
我大意了,现在明白子窗体设计了,谢谢!
作者: ycxchen    时间: 2012-6-26 00:18
我大意了,现在已经明白子窗体的设计。
作者: ycxchen    时间: 2012-6-26 08:26
我大意了,现明白,感谢!
作者: ycxchen    时间: 2012-6-26 12:15
因对昨晚“回复需审核”的规定领会有误,导致重复发帖,见谅,请管理员删除重复的。
作者: ycxchen    时间: 2012-6-26 12:43
本帖最后由 ycxchen 于 2012-6-26 12:55 编辑

[attach]49489[/attach]再向版主请教:删除子窗体一条完整记录的代码容易写,但对在本例子的子窗体选定某人后删除其记录的代码不懂,盼版主指教!
作者: Henry D. Sy    时间: 2012-6-26 14:51
ycxchen 发表于 2012-6-26 12:43
再向版主请教:删除子窗体一条完整记录的代码容易写,但对在本例子的子窗体选定某人后删除其记录的代码不懂 ...

[attach]49492[/attach]
作者: ycxchen    时间: 2012-6-26 15:48
十分感谢版主指教!我再请教为什么用str即可以的?且 str不用声明变量类型的?
作者: Henry D. Sy    时间: 2012-6-26 15:58
在公共模块中声明的。
作者: ycxchen    时间: 2012-6-26 16:21
再次感谢!
作者: ycxchen    时间: 2012-6-27 16:34
版主,你在20楼的改动,已经将“座位表”的“人员”字段数据改为文本了,一个人有可能多次参加不同的活动,得到不同的座位安排,能构成一对多关系的,我在表间创建关系时,不能创建一对多关系,如果嘉宾出现姓名相同的情况,不能依靠一对多关系(人员ID)处理数据时会混乱,请问,在数字数据类型的情况下,有办法达到20楼的效果吗?
作者: Henry D. Sy    时间: 2012-6-27 21:33
问题就在这里,
如果出现重名的话,你的要求是选择名字,然后删除座位安排,这样的话,就会删除掉所有重名的记录。
除非在交叉表上显示人员id,
作者: Henry D. Sy    时间: 2012-6-27 22:19
Henry D. Sy 发表于 2012-6-27 21:33
问题就在这里,
如果出现重名的话,你的要求是选择名字,然后删除座位安排,这样的话,就会删除掉所有重名 ...

[attach]49521[/attach]
作者: ycxchen    时间: 2012-6-28 09:00
十分感谢版主指教,我得好好研究,向你学习!




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