语句是这样的:
rs.Source = "SELECT * INTO [Excel 8.0;DATABASE=d:\work\waterplant\user_record.xls].[Sheet1] FROM user_record where logintime between #" & ST & "# and #" & ET & "#"目的是用VBA将access数据库中满足条件的数据取出来写入excel中,user_record是access中的一个表,logintime是其中的一个字段,在access中logintime是个日期/时间类型的字段,上述语句执行后可以写入excel,但写入的logintime字段下只有日期,没有时间了,为什么?在vba里面用select 是可以出来时间的。高手们帮忙啊!

解决方案 »

  1.   

    你用msgbox logintime看看输出的结果是什么
      

  2.   

    把格式设置成字符串格式就好了!
        Columns("B:B").Select
        Selection.NumberFormatLocal = "@"
    然后再写入时间,就不会被省略了!
      

  3.   

    hoounsoon(双儿) :你用msgbox logintime看看输出的结果是什么是有日期的,就是插入到excel里就没有了
      

  4.   

    pweixing(幸运米,幸运得米!) :是把access里的日期换成字符串吗?那还支持日期比较吗?
      

  5.   

    你的程序插进去是没有日期还是没有时间,我怎么越看越糊涂了,还是你的数据插进去后便成了小数了。
    你试试这样,
    先将logintime赋值给一个date变量,然后将这个变量赋值给一个字符串变量。再将字符串插入excel
      

  6.   

    hoounsoon(双儿):
    在access里的数据是2005-1-1 20:09:02  出入到excel后变成2005-1-1了,是这样的!
      

  7.   

    会不会和excel里面的数据显示的格式有关,我有个excel就是输入2005-1-1 8:20:50的时候,显示的是1
    读出来的数据也是1。
      

  8.   

    設置EXCEL中日期那一列的格式阿選中日期那一列,點右鍵,選格式,>> 類別選日期,>>類型選,又有時間又有日期的那個試試
       
      

  9.   

    //是把access里的日期换成字符串吗?那还支持日期比较吗?不是转换啊,是比较完在插入到excel前,使用我给你的命令,先把那excel中一列的格式变成文本方式,然后再插入就好了!
      

  10.   

    pweixing(幸运米,幸运得米!) :
    rs.Source = "SELECT * INTO [Excel 8.0;DATABASE=d:\work\waterplant\user_record.xls].[Sheet1] FROM user_record where logintime between #" & ST & "# and #" & ET & "#"这句话执行的同时,就已经生成excel文件兵插入数据了,我怎么用你给的那两句话啊?能说的详细点吗?执行上面这句话的时候那个\excel表每次先判断有没有,有就先删除再创建,没有就直接创建并插入语句
      

  11.   

    在导入EXCEL时设置好日期时间插入的那一列是日期时间型就搞定,这是EXCEL默认的设置,所以在插入前必须通过程序改过来!