设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 10682|回复: 23
打印 上一主题 下一主题

[帮助] 用IF语句能实现这样的循环吗?

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-17 16:22:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
假如 Me.收费项目="学费" 且 Me.班级="103班"或"105班" 时
若   Me.入学日期在2010年2月以前
Me.收费金额="1000"
若   Me.入学日期在2010年2月-2011年3月
Me.收费金额="1300"
若   Me.入学日期在2011年3月-2011年9月
Me.收费金额="1500"
否则
Me.收费金额="2000"
假如 Me.收费项目="学费" 且 Me.班级="101班"或"102班"或"104班"或"106班" 时
若   Me.入学日期在2010年2月以前
Me.收费金额="1200"
若   Me.入学日期在2010年2月-2011年3月
Me.收费金额="1500"
若   Me.入学日期在2011年3月-2011年9月
Me.收费金额="1800"
否则
Me.收费金额="2100"
假如 Me.收费项目="学费" 且 Left(Me.班级, 1) = 2或3或4或5或6 时
若   Me.入学日期在2010年2月以前
Me.收费金额="1300"
若   Me.入学日期在2010年2月-2011年3月
Me.收费金额="1600"
若   Me.入学日期在2011年3月-2011年9月
Me.收费金额="1900"
否则
Me.收费金额="2200"
假如 Me.收费项目="学费" 且 Left(Me.班级, 1) = 7或8或9 时
若   Me.入学日期在2010年2月以前
Me.收费金额="1400"
若   Me.入学日期在2010年2月-2011年3月
Me.收费金额="1700"
若   Me.入学日期在2011年3月-2011年9月
Me.收费金额="2000"
否则
Me.收费金额="2500"

或者不筛选日期,直接赋4个值到金额里,采用下拉框显示,到底怎么样最好呢?
要把这些转换成代码,怎么写啊???



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
24#
发表于 2011-12-27 11:52:02 | 只看该作者
一共29个班,每个班又分4个入学时间段,4*29=108条记录,保存到一张学费表!
其他各费用分门别类的各自保存在相应的表上。
然后再说第二步。。。。。。。
23#
 楼主| 发表于 2011-12-27 11:05:18 | 只看该作者
如果将收费标准简化,是不是比较好做呢,不用考虑以后更改数据标准麻烦,反正一年就二次更改。
这个是不是用组合框联动就可以搞定啊,但有几个还是要判断班级,要怎么做呢?

班级
学费
资料费
中餐
兴趣班
校讯通
校服
书包
校车
早餐
103班
1850;2000;2300
300
550
200
30
30;50;75;80;120
35
260;450
300
105班
101班
2000;2400;2700;3100
400
600
102班
104班
106班
107班
201班
202班
203班
204班
301班
302班
303班
304班
401班
402班
403班
404班
501班
502班
503班
601班
602班
701班
2300;2600;3000;3500
500
650
702班
801班
802班
901班
800
22#
发表于 2011-12-26 09:24:40 | 只看该作者
Henry D. Sy 发表于 2011-12-25 19:38
个人感觉这样硬编码不好,维护比较困难(比如费用变更)
应该用表来保存这些费用,然后用查询得到费用。

支持!
21#
发表于 2011-12-26 00:45:01 | 只看该作者
Henry D. Sy 发表于 2011-12-25 19:38
个人感觉这样硬编码不好,维护比较困难(比如费用变更)
应该用表来保存这些费用,然后用查询得到费用。

的确不好。
从原则上来说,缴费应该只跟年级有关,而不该再和入学日期有关。——莫非留学生(留级的学生就可以少花些钱读书)?
如果所有费用只跟年级有关,那么可以整合在一起,但就楼主的问题而言,既有只跟年级有关的(例如资料费什么的),也有固定的(例如体检),还有校车跟长短线有关……这些再和学费整合在一起并不容易。
当然可以建立多个表和编号字段。只是录入时较为麻烦,只能分多个表录入再用联合查询汇总(一张表多个编号字段,当录入多个数据时,始终不是个好办法)。
20#
发表于 2011-12-25 19:38:04 | 只看该作者
个人感觉这样硬编码不好,维护比较困难(比如费用变更)
应该用表来保存这些费用,然后用查询得到费用。
19#
发表于 2011-12-25 18:44:52 | 只看该作者
1、表需要重新设计,带条件的数据应当分离出来(例如资料费、中餐费、学费等),成为独立的一张表。
2、如果非要在选择里统一的话,可以考虑加上计算公式的字段,用Eval函数处理。
先贴一段代码供参考(缴费部分已结束。校车安排、退费等等模块还在写。不过今天是圣诞节,想休息下。):
代码说明:
新建模块,粘贴代码并保存模块,然后新建查询,在查询窗格里输入自定义字段,例如:学费:Schooling([入学日期], [入学班级])

  1. Function Schooling(SclDate As Date, ClassNo As String) As Currency
  2. Schooling = 0
  3. Select Case SclDate
  4.     Case Is < #3/1/2009#
  5.         Select Case ClassNo
  6.             Case "103", "105"
  7.                 Schooling = 1850
  8.             Case "701", "702", "801", "802", "901"
  9.                 Schooling = 2300
  10.             Case Else
  11.                 Schooling = 2000
  12.         End Select
  13.     Case Is < #10/1/2009#
  14.         Select Case ClassNo
  15.             Case "103", "105"
  16.                 Schooling = 2000
  17.             Case "701", "702", "801", "802", "901"
  18.                 Schooling = 2600
  19.             Case Else
  20.                 Schooling = 2400
  21.         End Select
  22.     Case Is < #3/1/2011#
  23.         Select Case ClassNo
  24.             Case "103", "105"
  25.                 Schooling = 2300
  26.             Case "701", "702", "801", "802", "901"
  27.                 Schooling = 3000
  28.             Case Else
  29.                 Schooling = 2700
  30.         End Select
  31.     Case Else
  32.         Select Case ClassNo
  33.             Case "103", "105"
  34.                 Schooling = 3000
  35.             Case "701", "702", "801", "802", "901"
  36.                 Schooling = 3500
  37.             Case Else
  38.                 Schooling = 3100
  39.         End Select
  40. End Select
  41. End Function
复制代码
18#
发表于 2011-12-21 20:31:13 | 只看该作者
贫龙 发表于 2011-12-21 16:22
所有的都提供了啊,测试记录也加了。

应该用表格的方式贴出来
17#
 楼主| 发表于 2011-12-21 16:22:10 | 只看该作者
所有的都提供了啊,测试记录也加了。
16#
发表于 2011-12-21 10:40:34 | 只看该作者
贫龙 发表于 2011-12-21 07:59
有谁可以帮帮我啊!?

你都不贴资料,如何帮忙?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 13:44 , Processed in 0.104949 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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