在表里插入 2004年 所有 星期为 3 的日期谢谢

解决方案 »

  1.   

    在什么数据库下?如果想用SQL语句实现,不太可能(除非你不停地用UNION)你可以自动生成SQL代码,然后一条条地往数据库里面加啊。
      

  2.   

    ACCESS各位老大帮忙想想吧,谢谢
      

  3.   

    可以参考一下
    假如2004。01。01为第一个星期3,2004。12。30为最后一个星期三:weeks=datediff("w",2004/01/01 ,2004/12/30)for i=1 to weeks   
     MyDate=dateadd("w",i,2004/01/01)'这就是你要得日期next
      

  4.   

    如2楼所说,在vb里面的循环里面生成要执行的sql语句,一条语句插入一个日期,然后循环搞定.或者用存储过程,方法是一样的.
      

  5.   

    逻辑上错了一点:
    for i=0 to weeks
      

  6.   

    Dim tDate as Date
    tDate="2004-1-1"
    While year(tDate)<=2004
       If Weekday(Date) - 1=3 Then
          '这里写入插入语句
          Conn.Execute("Inser into table xxxxx")
       End if
       tDate=DateAdd("d",1,tDate)
    Loop
      

  7.   

    sorry,是我表达错误我是说有没有 办法 只用SQL 语句完成这些?谢谢
      

  8.   

    有,除非你实在想Union365次具体实现方法如下:语法:
    insert into table (select field From table1)后面的Select field from table 需要改成
    Select '2004-01-01' From **表 Where 判断当天是否为星期三
    Union
    Select '2004-02-02' From **表 Where 判断当天是否为星期三
    .......
      

  9.   

    写错了应当为
    Select '2004-01-02' From **表 Where 判断当天是否为星期三
    Union
    Select '2004-01-03' From **表 Where 判断当天是否为星期三
    Union
    Select '2004-01-04' From **表 Where 判断当天是否为星期三
    不过我可没有试过是否支持这么多个Union,以及执行效率如何。
      

  10.   

    Private Sub Command1_Click()
    Dim d As Date
    For d = "2004-01-01" To "2004-12-31"
        If Weekday(d, vbMonday) = 3 Then
            Combo1.AddItem d
        End If
    Next
    End Sub
    这样可以把所有星期三加到COMBO中,你可以再用循环,把COMBO中的内容加到数据库中啊。
      

  11.   

    在access中也可以用vba呀思路同上面各位所说的差不多。。