Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]请教一个有关级联更新的问题

阿四  发表于:2013-05-09 11:42:37  
复制

请教一个有关级联更新的问题,假设我有两张表:
一张是销售表(商品id,销量),;另一张表是价格表(商品id, 品名,价格),然后通过选择查询计算每日销售收入。
 
问题来了,假如有一天开始调价,以前是按老价格销售,肯定是不能实行更新的,只能从调价日开始更新价格。问题是表关系上只有级联更新,没有按条件进行联系更新。刚才问老师,老师说用upate.,还是感觉不对劲,因为我的销售表上并没有价格这个字段。如果从调价日开始给商品改名,倒能解决问题,但心有不甘,毕竟是同一种商品,为什么要用2个id呢?

是不是价格表不有商品ID作主键,用自动编号字段吗?
是不是价格表不能用商品ID作主键,用自动编号字段吗?那和销售表又怎么关联呢?
是不是价格表,增加一个日期字段。将日期+商品id组合为主键,然后再和销售表的日期和商品进行关联,组合字段咋关联呢,关系表上的线咋拉呢?

 

Top
漏蛧尐魚℡ 发表于:2013-05-09 12:18:21

价格表你是不是少写了字段?                

一张是销售表(商品id,销量),;另一张表是价格表(价格id,商品id, 品名,价格)这样比较好吧。

然后这个调价日期呢?        



恐龙的传人 发表于:2013-05-17 22:23:23

建议楼主将价格表增加执行日期以及终止日期。

以本人从事物流行业为客户代理报关之转关费为例,建立查询,查询内有关转关费用的字段为计算字段,具体如下:

转关费: IIf([自报]="yes" And [资料]="转关",DLookUp("报关费","报关费用标准","出境口岸='" & [出境] & "'and #" & [装货日期] & "#>=执行日期 And #" & [装货日期] & "#<=终止日期"),Null)

 

要求:自报字段为yes,即代理客户报关,并且资料类型为转关,则转关费用=从报关费用标准表中以出境口岸+执行日期以及终止日期为条件的值。

 

有点累啊,不知道楼主能不能看懂,算了,帮楼主建一个表试一下



恐龙的传人 发表于:2013-05-17 23:07:19

随便弄了个例子给楼主。

用dlookup函数

 

注意:本人不太会用非绑定表的窗体,请体谅。

在销售录入窗体的商品id字段写入更新后事件:

Me.价格 = DLookup("商品价格", "价格表", "品名='" & [商品id] & "'and #" & [日期] & "#>=执行日期 And #" & [日期] & "#<=终止日期")

这样的话,楼主需要涨价,或者降价前,价格表里的商品价格修改后,再把执行日期和终止日期进行修改,这样在录入商品名称时,价格就自动调整了。

如果需要批量调整已录入的数据,建议配合dlookup函数使用更新查询。



恐龙的传人 发表于:2013-05-17 23:14:02

顺便帮楼主写一下调整价格,修改执行日期和终止日期后的更新查询的SQL语句:

 

UPDATE [销售表 查询] SET [销售表 查询].价格 = DLookUp("商品价格","价格表","品名='" & [商品id] & "'and #" & [日期] & "#>=执行日期 And #" & [日期] & "#<=终止日期");



阿四 发表于:2013-05-18 00:24:53

谢谢。此为正解,已列入最佳解决方案。我自已也想了一个办法,显得有点笨拙,也算是一种解决办法吧。http://www.accessoft.com/blog/article-show.asp?userid=28039&Id=8252



恐龙的传人 发表于:2013-05-18 10:32:46

奇怪当前我协助他人回帖10篇,被设为最佳答案还是0篇。。。怎么回事!?



张亚帮 发表于:2013-05-18 10:36:25
总记录:7篇  页次:1/1 9 1 :