设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2810|回复: 17
打印 上一主题 下一主题

[其它] 请给段代码!

[复制链接]
跳转到指定楼层
1#
发表于 2004-2-13 16:19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个表里有ID和考勤时间和日期.我想写一段VBA代码判断当天12:00之前此ID是否已经考勤.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2004-2-13 16:36:00 | 只看该作者
    If DLookup("日期", "test", "id=5 and hour(日期)>11") Then
        MsgBox "no"
    Else
        MsgBox "yes"
    End If
3#
 楼主| 发表于 2004-2-13 17:19:00 | 只看该作者
有一个由此表生成的窗体,我在ID项输入的ID号为当前ID号.
请说一下Dlookup的用发吗?我的帮助里没有.

点击这里给我发消息

4#
发表于 2004-2-13 17:51:00 | 只看该作者
作者:zhengjialon  即将在首页的专栏作家文章中发表
提示:  以下用法示例适合于大部分的合计函数(域函数如Max, DMin等)


语法:

    DLookup(expr, domain, [criteria])


参数解释:

    expr:要获取值的字段名称
    domain :要获取值的表或查询名称
    criteria:用于限制 DLookup 函数执行的数据范围。如果不给 criteria 提供值,Dlookup 函数将返回域中的一个随机值。


正常用法
   
    用于数值型条件值:
  DLookup("字段名称" , "表或查询名称" , "条件字段名 = n")
   
    用于字符串型条件值注意字符串的单引号不能丢失)
  DLookup("字段名称" , "表或查询名称" , "条件字段名 = '字符串值'")

    用于日期型条件值注意日期的#号不能丢失)
  DLookup("字段名称" , "表或查询名称" , "条件字段名 = #日期值#")


从窗体控件中引用条件值用法

    用于数值型条件值:
  DLookup("字段名称" , "表或查询名称" , "条件字段名 =" &
   forms!窗体名!控件名)
   
    用于字符串型条件值注意字符串的单引号不能丢失)
  DLookup("字段名称" , "表或查询名称" , "条件字段名 = '" &
   forms!窗体名!控件名 & "'")

    用于日期型条件值:(注意日期的#号不能丢失)
  DLookup("字段名称" , "表或查询名称" , "条件字段名 = #" &
   forms!窗体名!控件名 & "#")


混合使用方法(支持多条件)
   
    在这种方法中也可以在条件中写入固定的值。
    DLookup("字段名称" , "表或查询名称" , "条件字段名1 = " & Forms!窗体名!控件名1  _
            & " AND 条件字段名2 = '" & Forms!窗体名!控件名2 & "'" _
            & " AND 条件字段名3 =#" & Forms!窗体名!控件名3 & "#")


注:
    Dlookup之类的合计函数(域函数)是ACCESS为用户提供的内置函数,通过这些函数可以方便的从一个表或查询中取得符合一定条件的值赋予变量或控件值,就不需要再用DAO或者ADO打开一个记录集,然后再去从中获取一个值,这样所写的代码要少的多。
    但是如果需要更灵活的设计,比如所查询的域没有在一个固定的表或查询里,而是一个动态的SQL语法,或是临时生成的复杂的SQL语句,亦或是需要代入循环的条件值等,此时还是需要从DAO或者ADO中定义记录集来获取值。因为Dlookup之类的合计函数必竟是一个预定义好格式的函数,所支持的语法有限,但对于大多数的要求是都能够满足的。

5#
 楼主| 发表于 2004-2-13 18:18:00 | 只看该作者
我写的通不过啊?不知道理解的对不对.前一个"上班考勤记录"为一个表的名字,后一个"上班考勤记录"为一个窗体的名字.日期,ID,时间.均为表中的一项.
If DLookup("日期", "上班考勤时间记录", "id=" & forms!上班考勤时间记录!ID" and 日期="now()" and 时间>"12:00"") Then

点击这里给我发消息

6#
发表于 2004-2-13 18:24:00 | 只看该作者
为什么不按我写给你的格式呢?
7#
 楼主| 发表于 2004-2-13 18:32:00 | 只看该作者
If DLookup("日期", "上班考勤时间记录", "id=5 and hour(日期)>11") Then
是这样吗?那么请问ID=5是什么意思哪?我要的是判断我在窗体中的ID项输入的值.
而且日期为当天的日期,时间为12:00之前.
为对于你的写法还没有理解深刻,请大侠指点!

点击这里给我发消息

8#
发表于 2004-2-13 18:46:00 | 只看该作者
If DLookup("日期", "上班考勤时间记录", "id='" & forms!上班考勤时间记录!ID "' and 日期=#" & date() & "# and hour(时间)>11") Then

点击这里给我发消息

9#
发表于 2004-2-13 18:47:00 | 只看该作者
你的ID是文本型吗? 是文本型就要用单引号,数值型就不要。
10#
 楼主| 发表于 2004-2-13 18:53:00 | 只看该作者
时数值型的,但它报错"缺少列表分割符或("怎么回事?

[此贴子已经被作者于2004-2-13 10:58:44编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 06:50 , Processed in 0.088326 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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