Access交流中心

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

如何设置表格字段间的加权计算关系

jimmy  发表于:2012-02-16 22:15:51  
复制

表是代码创建的,其中有人的信息和平时成绩,期末成绩,总评三个字段,想要达到的是有两种方式,若输入平时和期末成绩,自动生成总评=30%平时+70%期末;也可直接输总评,不输平时和期末成绩。最终需要的是总评。

创建表格时能否把这个关系确定。或者是不在建表时实现,而是通过查询的方式用代码如何写

求代码

谢谢

 

Top
煮茶论道 发表于:2012-02-16 22:35:44

在查询中用iif函数判断之。 Round(IIf(IsNull([总评]),[期中]*0.3+[期末]*0.7,[总评]),0)

建附件查询结果:

 

点击下载此附件

jimmy 发表于:2012-02-16 23:02:42

恩,效果是这样,如果我用窗体中模块按钮来创建一个这样的查询

创建代码如下

Dim db As Database
Dim qdf As QueryDef
Set db = CurrentDb
Set qdf = db.CreateQueryDef( "成绩查询", "select 课程编号,学号,姓名,平时成绩,期末成绩,总评 from 选课信息 where 课程编号=" + "'" + Text21.Value + "';")
DoCmd.OpenQuery ("成绩查询")
这样可以建立查询

结下了怎样把Round(IIf(IsNull([总评]),[期中]*0.3+[期末]*0.7,[总评]),0)给添加进去



煮茶论道 发表于:2012-02-17 07:48:56
Dim db As Database
Dim qdf As QueryDef
Set db = CurrentDb
Set qdf = db.CreateQueryDef("成绩查询", "select 姓名,期中,期末, Round(IIf(IsNull([总评]),[期中]*0.3+[期末]*0.7,[总评]),0) AS 总评1 from 成绩表")
DoCmd.OpenQuery ("成绩查询")

总记录:3篇  页次:1/1 9 1 :