设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1399|回复: 3
打印 上一主题 下一主题

[窗体] 【求助】如何根据日期来判断状态

[复制链接]
跳转到指定楼层
1#
发表于 2008-4-6 17:24:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何根据日期来判断状态:
如附件中,表中共有5个日期字段,分别记录某流程各环节发生的先后日期,
在窗体中,如何设置关闭按钮,以实现,根据日期自动填入状态,

日期1”有值,日期2” 日期3”日期4”日期5”为空时,状态为状态1”
日期1” 日期2”有值,日期3”日期4”日期5”为空时,状态为状态2”
日期1” 日期2”日期3”有值,日期4”日期5”为空时,状态为状态3”
日期1” 日期2”日期3”日期4”有值,日期5”为空时,状态为状态4”
日期1” 日期2”日期3”日期4”日期5”有值时,状态为状态5”
1、当5个日期字段没有满足日期1” <=日期2”<=日期3”<=日期4”<=日期5”的条件时,点击“关闭”按键时,弹出对话框“错误1”,按“确定”返回,不允许退出;
2、当5个日期字段不满足以上5个状态的情况时点击“关闭”按键时,弹出对话框“错误2”,按“确定”返回,不允许退出;
3、当5个日期字段满足以上5个状态的情况时,点击“关闭”按键时,弹出对话框“该流程目前处状态为XXX”按“确定”退出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-4-7 00:05:44 | 只看该作者
Private Sub 关闭_Click()
Dim Err1 As Boolean
Dim Err2 As Boolean
If 状态一 = True Then
    状态 = 1
ElseIf A状态二 = True Then
    If B状态二 = True Then
        状态 = 2
    Else
        Err1 = True
    End If
ElseIf A状态三 = True Then
    If B状态三 = True Then
        状态 = 3
    Else
        Err1 = True
    End If
   
ElseIf A状态四 = True Then
    If B状态四 = True Then
        状态 = 4
    Else
        Err1 = True
    End If
ElseIf A状态五 = True Then
    If B状态五 = True Then
        状态 = 5
    Else
        Err1 = True
    End If
Else
    Err2 = True
    MsgBox "错误2"
End If
If Err1 = True Then
    MsgBox "错误1"
    Exit Sub
End If
If Err1 = False And Err2 = False Then
    MsgBox "该流程目前处于状态" & 状态
    DoCmd.Close
End If
End Sub

Function 状态一() As Boolean
    状态一 = (Nz(日期1) <> "" And Nz(日期2) = "" And Nz(日期3) = "" And Nz(日期4) = "" And Nz(日期5) = "")
End Function
Function A状态二() As Boolean
    A状态二 = Nz(日期1) <> "" And Nz(日期2) <> "" And Nz(日期3) = "" And Nz(日期4) = "" And Nz(日期5) = ""
End Function
Function A状态三() As Boolean
    A状态三 = Nz(日期1) <> "" And Nz(日期2) <> "" And Nz(日期3) <> "" And Nz(日期4) = "" And Nz(日期5) = ""
End Function
Function A状态四() As Boolean
    A状态四 = Nz(日期1) <> "" And Nz(日期2) <> "" And Nz(日期3) <> "" And Nz(日期4) <> "" And Nz(日期5) = ""
End Function
Function A状态五() As Boolean
    A状态五 = Nz(日期1) <> "" And Nz(日期2) <> "" And Nz(日期3) <> "" And Nz(日期4) <> "" And Nz(日期5) <> ""
End Function

Function B状态二() As Boolean
    B状态二 = (A状态二 = True And 日期1 <= 日期2)
End Function
Function B状态三() As Boolean
    B状态三 = (A状态三 = True And 日期1 <= 日期2 <= 日期3)
End Function
Function B状态四() As Boolean
    B状态四 = (A状态四 = True And 日期1 <= 日期2 <= 日期3 <= 日期4)
End Function
Function B状态五() As Boolean
    B状态五 = (A状态五 = True And 日期1 <= 日期2 <= 日期3 <= 日期4 <= 日期5)
End Function

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2008-4-7 08:51:31 | 只看该作者
有点看不懂
Dim Err1 As Boolean 是什么意思?
以下这段又是怎么解释?
Function 状态一() As Boolean
    状态一 = (Nz(日期1) <> "" And Nz(日期2) = "" And Nz(日期3) = "" And Nz(日期4) = "" And Nz(日期5) = "")
End Function
4#
发表于 2008-4-7 09:46:35 | 只看该作者
状态一 = (Nz(日期1) <> "" And Nz(日期2) = "" And Nz(日期3) = "" And Nz(日期4) = "" And Nz(日期5) = "")

当“日期1”有值, “日期2” 、 “日期3”、“日期4”、“日期5”为空时,状态为“状态1”

成立,则返回值状态一 ="true",否则.状态一 ="false"

[ 本帖最后由 chenwm1973 于 2008-4-7 09:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-5 12:21 , Processed in 0.114252 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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