设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 请教自定义函数问题

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-14 21:51:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想自定义一个函数,只是水平有限,想请教各位老师们了.
公司财务结算时间段为每个月的21日至下一个月的20日,例如:6月21日~7月20日结算月为7月份;7月21日~8月20日以为一个结算为8月份,如何自定义一个函数来判定一个定单日期是属于那一个结算月呢?
Public Function OrderMonth(OrderDate As Date) As String
      ......'表达式或判定
  OrderMonth="月份"
     ......'表达式或判定
  OrderMonth="月份"
End Function
该如何写表达示或判定?望指教......
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-11-14 22:49:22 | 只看该作者
用DateSerial函数来写表达式判定,自己看一下就会了。
如果不行,再帮你
3#
发表于 2007-11-14 23:15:30 | 只看该作者
Public Function OrderMonth(OrderDate As Date, BDate As Integer) As String
    'BDate 为月份分隔日,根据实际设置
    '用法: OrderMonth(#7/21/2007#, 21)
    If Format(OrderDate, "d") < BDate Then
        OrderMonth = Format(OrderDate, "yyyy-mm")
    Else
        OrderMonth = Format(DateAdd("m", 1, OrderDate), "yyyy-mm")
    End If
End Function
4#
发表于 2007-11-15 10:41:12 | 只看该作者
学习
5#
发表于 2007-11-15 11:07:29 | 只看该作者
我的专栏中也有一些关于自定义日期函数的例子可供参考。
6#
 楼主| 发表于 2007-11-15 20:05:01 | 只看该作者
谢谢各位老师,这个问题已解决了
Public Function MyMonth(Mydate As Date) As String
    '首先取出传进来的参数值 年月日
  Dim MyYear As Integer
    Dim Mymoth As Integer
    Dim Mday As Integer
    MyYear = Year(Mydate)
    MyMonth = Month(Mydate)
    Mday = Day(Mydate)
   
    '定义一个常量,
    Const last_day = 20
    If Mday > 20 Then
        MyMonth = MyMonth + 1
        If MyMonth > 12 Then
            MyYear = MyYear + 1
            MyMonth = 1
        End If
    End If
        
    '定义一个字符型变量
    Dim s As String
    s = MyYear & "年" & Format(MyMonth, "00") & "月"
    MyMonth = s
End Function
'立即窗口调试
?MyMonth (#2007-06-21#)
   2007年07月
?MyMonth (#2007-12-21#)
   2008年01月
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-22 01:42 , Processed in 0.089997 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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