Office中国论坛/Access中国论坛

标题: 关于VBA代码执行问题,请大家看看为什么不能执行 [打印本页]

作者: herry2003aa    时间: 2014-12-29 10:42
标题: 关于VBA代码执行问题,请大家看看为什么不能执行
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考勤](日期),这个表中的日期字段属性为日期,但是在执行的过程中说类型不匹配,请大家看看如何修改。
作者: herry2003aa    时间: 2014-12-29 10:44
我想追加上个月的21日到这个月的20日的日期作为考勤的日期列表的值,但是现实类型不匹配,请教大家了。
作者: roych    时间: 2014-12-29 11:31
本帖最后由 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本身的日期格式就可以加减,根本不必那么复杂。
作者: todaynew    时间: 2014-12-29 11:41
本帖最后由 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

作者: herry2003aa    时间: 2014-12-29 14:09
roych 发表于 2014-12-29 11:31
敢不敢再复杂点?
1、变量没定义。A、B都是数值型,在C的赋值里需要转换为文本才可以执行format函数。
2 ...

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

谢谢。以后还得多向你们请教。
作者: ak47ok    时间: 2015-11-28 13:08
每次回帖、谢谢!辛苦了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3