设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 811|回复: 4
打印 上一主题 下一主题

[查询] 怎么设计这样的查询?

[复制链接]
跳转到指定楼层
1#
发表于 2002-10-29 05:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的窗体(每一记录对应一间公司)内含有一子窗体(用于记录对应该公司的联系人),我在挑选要邮寄信件的公司时,遇到了一个问题。由于并不是每间公司都有联系人,所以老板要求这些公司的收件人要写成“公司负责人”,而有的公司有多于一个的联系人,我们会挑选其中一个(假设只允许一个)来作为收件人,为此子窗体内的每一记录都有一个复选框用于标记其是否作为收件人。我现在的做法是在“公司”表内添加一列“收件人”用于在制作邮件标签时(用WORD的邮件合并功能)可方便地作为一个域直接插入,并在窗体上添加一文本框绑定到这个字段,使其默认值为“公司负责人”,然后建立一更新查询,若其子窗体中的记录的“收件人”复选框为选中时将“收件人”文本框的默认值更改为收件人的姓名。我的问题是假若老板要求某些公司同时寄给两个联系人,那我该怎么设计能够让普通用户更容易操作?
同时我想问若只要求寄给一个联系人时,有比我以上所说的更好的设计吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-10-29 18:32:00 | 只看该作者
这样如何:
1.公司表中不设收件人,使用联系人表中有收件标识的联系人即可
2.建一查询:SELECT 公司名,联系人 FROM 公司 LEFT JOIN 联系人 ON 公司.公司名=联系人.公司名 WHERE 联系人.收件标识
3. 用此查询作为合并邮件的数据源,设置合并域=iif(isnull(联系人),联系人,"公司负责人")
3#
发表于 2002-10-29 18:55:00 | 只看该作者
不用第3步。直接修改2中的查询为:
SELECT 公司名,iif(isnull(联系人),联系人,"公司负责人") As 联系人 FROM 公司 LEFT JOIN 联系人 ON 公司.公司名=联系人.公司名 WHERE 联系人.收件标识
4#
 楼主| 发表于 2002-11-1 05:22:00 | 只看该作者
不行啊。我发现在WHERE子句里对复选框进行筛选时,无论是左外部连接还是右外部连接,最后的查询结果都是一样,不会把“公司”表内不含联系人的记录也合并在查询结果中。
5#
发表于 2002-11-1 21:30:00 | 只看该作者
不会的吧。左连接会包括左边表的所有纪录,所以只要公司中有的纪录,都会出现在最后的查询中。记住要把公司表中的联系人字段删除,否则会引起字段冲突。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 19:35 , Processed in 0.100303 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表