问一个关于ACCESS数据库的问题

假设现在有一个订单表 其中包括如下字段:
订单编号(主键)、订单金额、全部下单(是否)、全部到货(是否)、等等
这个订单表下有多个产品、产品表字段如下:
订单编号、产品名称、生产厂方、下单日期、到货日期、等等

我想求助的是如何判定这个订单表内的所有产品都已经下单,或者都已经到货,在订单表上全部下单会自动打上对勾、到货表自动打上对勾。
用什么办法实现,谢谢各位了!

先要判断到货日期,用产品表做一个查询,在查询里一个空字段里写入:
IIF(到货日期>=date(),'到货',到货日期)
这句语句是让 到货日期 字段到了时间自动显示到货字样,没到货日期不变。这样你就可以随时判断 到货日期 作出筛选,显示为到货的把他筛选出来:
Select * From [产品表 查询] Where IIF(到货日期>=date(),'到货',到货日期)='到货'
再加个下单日期判断也是一样:
Select * From [产品表 查询] Where IIF(下单日期>=date(),'已下单',下单日期)='已下单'
假设这个判断下单的查询叫 查询1,判断到货的查询叫查询2
那就用这个查询1去匹配订单表,把这个查询名称取为查询3和查询4:
Select * From 订单表 Inner join 查询1 on 订单表.订单编号=查询1.订单编号;
匹配完了就是显示想匹配的订单表里的字段,你把他们全部更新一下:
Update From 查询2 set 全部下单=1;
这里又说回去了,全部下单和全部到货是根本的两码事,所以要建立四个查询分开来做判断;更新字段也不能有起更新也要分开来更新。
所有的这一些语句,不要用表来做操作,你要用窗体事件来触发:
比如一边录入数据一边触发,或者用宏来触发,或者用有个控件事件来触发;
总结一下,我的思想是分两个步骤:
1. 检索出下单日期到期的行-----查找订单可以更新的行------更新下单状况
1. 检索出到货日期到期的行-----查找订单可以更新的行------更新到货状况
你可以把语句全写在有个事件过程,或者放在有个宏里一起执行。这就是你想要的结果
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-03
触发器不行吗?
如何创建触发器

http://office.microsoft.com/zh-cn/access-help/CH006365515.aspx
第2个回答  2012-07-02
先获取所有商品的行数
iif 如果下单日期小于当前,则1,否则0,sum一下,如果和当前所有商品行数量相等,则全部下单

同理到货追问

能否提供下更具体的实施方法。十分感谢!

第3个回答  2012-07-04
我不知道你什么意思啊!
一般数据库里表示的话,有1种方式可以实现你说的那种是否下单:

下单的用数字“1”表示,没下单的用“0”表示。如果有中间等待,或者1半下单了,一半等待下单,可以加“2”
相似回答