设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 关于VBA代码执行问题,请大家看看为什么不能执行

[复制链接]
跳转到指定楼层
1#
发表于 2014-12-29 10:42:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DoCmd.SetWarnings False

Dim A, B, C, D

A = Year(Date)
B = Month(Date)
C = Format((A & "-" & B - 1 & "-21"), "YYYY-MM-DD") - Format((A & "-" & B & "-20"), "YYYY-MM-DD")
D = Format((A & "-" & B - 1 & "-21"), "YYYY-MM-DD")
Do
  
  DoCmd.RunSQL "insert into [~TMPCLP考勤](日期) values(D)"
  D = D + 1
  C = C - 1
Loop Until C = 0


DoCmd.SetWarnings True


[~TMPCLP考勤](日期),这个表中的日期字段属性为日期,但是在执行的过程中说类型不匹配,请大家看看如何修改。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2014-12-29 10:44:19 | 只看该作者
我想追加上个月的21日到这个月的20日的日期作为考勤的日期列表的值,但是现实类型不匹配,请教大家了。
3#
发表于 2014-12-29 11:31:14 | 只看该作者
本帖最后由 roych 于 2014-12-29 11:32 编辑

敢不敢再复杂点?
  1. Sub tt()
  2. Dim d As Date
  3. DoCmd.SetWarnings False
  4. For d = Date - 38 To Date - 9
  5.     DoCmd.RunSQL "insert into [~TMPCLP考勤](日期) values(#" & d & "#)"
  6. Next
  7. DoCmd.SetWarnings True
  8. End Sub
复制代码
1、变量没定义。A、B都是数值型,在C的赋值里需要转换为文本才可以执行format函数。
2、SQL语句中“D”已经转换为文本“D”。
3、即便要使用你的语句,也要加上“#”来转换为日期格式。而且根本不必这样写,formatDateTime就可以直接转换为日期格式,此举简直就是画蛇添足。
4、最后一点,建议先把基础夯实再去学代码。access本身的日期格式就可以加减,根本不必那么复杂。
4#
发表于 2014-12-29 11:41:07 | 只看该作者
本帖最后由 todaynew 于 2014-12-29 14:11 编辑

sub InserDate(y as integer,m as integer)
    '参数:y--年度,m--月度
    dim d0 as date,d1 as date
    dim ssql as string
    d0=DateSerial(y,m,21)
    d1=dateadd("1","m",d0)
    ssql="delete * from [~TMPCLP考勤] where 日期>=#" & d0 & "# and 日期<#" & d1 & "#"
    CurrentDb.Execute ssql
    do while d0<d1
         ssql="insert into [~TMPCLP考勤]  (日期) values (#" & d0 & "#)"
         CurrentDb.Execute ssql
         d0=dateadd("d",1,d0)
    loop
end sub
5#
 楼主| 发表于 2014-12-29 14:09:24 | 只看该作者
roych 发表于 2014-12-29 11:31
敢不敢再复杂点?
1、变量没定义。A、B都是数值型,在C的赋值里需要转换为文本才可以执行format函数。
2 ...

谢谢啊,基本功确实不行,以后还得继续学习。
6#
 楼主| 发表于 2014-12-29 14:09:49 | 只看该作者
todaynew 发表于 2014-12-29 11:41
sub InserDate(y as integer,m as integer)
    '参数:y--年度,m--月度
    dim d0 as date,d1 as date

谢谢。以后还得多向你们请教。
7#
发表于 2015-11-28 13:08:24 | 只看该作者
每次回帖、谢谢!辛苦了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 14:41 , Processed in 0.090538 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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