Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

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

阿四 等级: 普通会员▲ 积分:110 金币:160 来自:合肥Access交流中心 发表于:2013-05-09 11:42:37   已结帖
楼主

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

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

 

access培训  诚聘access开发人员

    阿四
      获得社区协助:请教问题(即发帖)4篇,其中获得解决的3篇;
      协助社区成员:协助他人(即回帖)1篇,其中被设为【最佳答案】的1篇;
      协助我们社区:发布技术文章4篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top
漏蛧尐魚℡ 等级:贵宾★★★★★ 积分:1388 金币:3200 来自:昆山Access交流中心 发表于2013/5/9 12:18:21 
1楼 得分: 0

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

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

然后这个调价日期呢?        



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    漏蛧尐魚℡
      获得社区协助:请教问题(即发帖)0篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)444篇,其中被设为【最佳答案】的85篇;
      协助我们社区:发布技术文章80篇,邀请了1名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
恐龙的传人 等级:一星会员▲ 积分:137 金币:120 来自:深圳Access交流中心 发表于2013/5/17 22:23:23 
2楼 得分: 0

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

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

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

 

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

 

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



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    恐龙的传人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的18篇;
      协助社区成员:协助他人(即回帖)31篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
恐龙的传人 等级:一星会员▲ 积分:137 金币:120 来自:深圳Access交流中心 发表于2013/5/17 23:07:19 
3楼 得分: 0

随便弄了个例子给楼主。

用dlookup函数

 

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

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

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

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

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



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    恐龙的传人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的18篇;
      协助社区成员:协助他人(即回帖)31篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
恐龙的传人 等级:一星会员▲ 积分:137 金币:120 来自:深圳Access交流中心 发表于2013/5/17 23:14:02 最佳答案
4楼 得分: 5

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

 

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



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    恐龙的传人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的18篇;
      协助社区成员:协助他人(即回帖)31篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
阿四 等级:普通会员▲ 积分:110 金币:160 来自:合肥Access交流中心 发表于2013/5/18 0:24:53 
5楼 得分: 0

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



    阿四
      获得社区协助:请教问题(即发帖)4篇,其中获得解决的3篇;
      协助社区成员:协助他人(即回帖)1篇,其中被设为【最佳答案】的1篇;
      协助我们社区:发布技术文章4篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
恐龙的传人 等级:一星会员▲ 积分:137 金币:120 来自:深圳Access交流中心 发表于2013/5/18 10:32:46 
6楼 得分: 0

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



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    恐龙的传人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的18篇;
      协助社区成员:协助他人(即回帖)31篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
张亚帮 等级:普通会员▲ 积分:230 金币:3600 来自:南京Access交流中心 发表于2013/5/18 10:36:25 
7楼 得分: 0
    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    张亚帮
      获得社区协助:请教问题(即发帖)0篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)12篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章90篇,邀请了68名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:7篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。