Access交流中心

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

各位前辈好,新人来学习求助请帮助。

盼盼  发表于:2015-11-26 15:58:36  
复制

阶段类型

请打开“主窗体”界面:

主窗体中的是快照子窗体,我想要子窗体中《阶段类型》字段的值自动显示下边的四种之一:
1、系统日期小于《停止日期》,《阶段类型》的值为:已超期
2、系统日期等于《停止日期》,《阶段类型》的值为:已到期
3、系统日期大于虚构的不显示的【提醒日期】,《阶段类型》的值为:即将停止。
  (没有提醒日期字段,是一个变量,这个值等于停止日期减去一个月的值)
4、系统日期小于虚构的不显示的【提醒日期】,《阶段类型》的值为:正常进行。
  (没有提醒日期字段,是一个变量,这个值等于停止日期减去一个月的值)


谢谢

 

Top
煮江品茶 发表于:2015-11-26 17:33:24
盼盼 发表于:2015-11-26 21:11:26
煮江品茶老师,我不是要要access自毁啊。

盼盼 发表于:2015-11-26 22:09:34

试着写了下代码:

Private Sub Form_Load()
Dim strtxrq As String
Dim strxtrq As String
strxtrq = Date
strxrq = DateAdd("m", -1, [停止日期])
If Me.停止日期 > strxtrq Then
   Me.阶段类型 = "已过期"
ElseIf Me.停止日期 = strxtrq Then
   Me.阶段类型 = "已到期"
ElseIf Me.停止日期 > strxrq Then
   Me.阶段类型 = "将到期"
ElseIf Me.停止日期 < strxrq Then
   Me.阶段类型 = "进行中"
End If
End Sub

可是有错误,显示:




盼盼 发表于:2015-11-27 12:44:33
Dim strtxrq As date
Dim strxtrq As date
strxtrq = Date
strtxrq = DateAdd("m", -1, [停止日期])
If Me.停止日期 > strxtrq Then
   Me.阶段类型.value = "已过期"
ElseIf Me.停止日期 = strxtrq Then
   Me.阶段类型.value = "已到期"
ElseIf Me.停止日期 > strxrq Then
   Me.阶段类型.value = "将到期"
ElseIf Me.停止日期 < strxrq Then
   Me.阶段类型.value = "进行中"
End If
改成这个也不对。是不是因为子窗体的数据源是查询,而且窗体是快照的原因?


盼盼 发表于:2015-11-27 21:47:51
为啥我的这个求助贴没有人来看。。想不明白啊。

落尘_小新 发表于:2015-11-28 20:51:57

你这个条件会有冲突,比如 停止日期为2015-11-30 那么提醒日期就是2015-10-30  假设系统日期为2015-11-28 那么类型显示什么?

这个情况即满足条件1,又满足条件3,是否需要做个判断?

给你做一个示例,参考一下,但上述冲突我没有加以区分。你看着改一下就可以。

点击下载此附件



盼盼 发表于:2015-12-01 11:13:49
谢谢6楼的老师,不过我已经做出来了。这个论坛活人气息太少了。哎。

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