用vb6记录两个时间点,出现了下面问题   状况发生时间                状况结束时间
2008-10-9 8:08:34 2008-10-9 8:02:20
2008-10-9 8:25:37 1899-12-30 0:00:00
1899-12-30 8:27:46 1899-12-30 0:00:00
1899-12-30 8:31:08 1899-12-30 0:00:00
2008-10-9 8:33:26 1899-12-30 0:00:00
2008-10-9 8:44:00 2008-10-9 8:33:33
2008-10-9 9:06:20 1899-12-30 0:00:00
2008-10-9 9:06:24 2008-10-9 9:06:22
2008-10-9 9:06:29 2008-10-9 9:06:26
2008-10-9 9:08:30 1899-12-30 0:00:00上面的数据有2个问题,一个是出现1899年,还有一个是结束时间比发生时间要早,按照我的逻辑,发生时间是加载FORM11时的时间点,而结束时间则是关闭FORM11的时间点,大家帮忙看下什么原因哈,程序如下..     '这是form3中关于存储时间的语句
     public ssss as date
        Load Form11
        Form11.Show
        Form11.Text1.Text = Keys(i, j, k)      
       Adodc1.Recordset.AddNew
       Adodc1.Recordset.Fields("日期") = Date
       Adodc1.Recordset.Fields("生产状况编号") = Text1.Text     
       Adodc1.Recordset.Fields("状况发生时间") = Now
       Adodc1.Recordset.Fields("状况结束时间") = SSSS      
       Adodc1.Recordset.Update     '更新数据库
    '这是form11的按钮事件
    Private Sub Command1_Click()
       Form3.SSSS = Now
       Form3.Enabled = True
       Unload Me
    End Sub

解决方案 »

  1.   

    '这是form3中关于存储时间的语句
         public ssss as date
            Load Form11
            Form11.Show
            Form11.Text1.Text = Keys(i, j, k)      
           Adodc1.Recordset.AddNew
           Adodc1.Recordset.Fields("日期") = Date
           Adodc1.Recordset.Fields("生产状况编号") = Text1.Text     
           Adodc1.Recordset.Fields("状况发生时间") = Now
           Adodc1.Recordset.Fields("状况结束时间") = SSSS      
           Adodc1.Recordset.Update     '更新数据库
    把上面的换成下面的代码试试看public ssss as date
            Load Form11
            Form11.Show
            Form11.Text1.Text = Keys(i, j, k)      
           Adodc1.Recordset.AddNew
           Adodc1.Recordset.Fields("日期") = Date
           Adodc1.Recordset.Fields("生产状况编号") = Text1.Text     
           Adodc1.Recordset.Fields("状况发生时间") = SSSS '(改过)     
           Adodc1.Recordset.Fields("状况结束时间") = Now  '(改过)
           Adodc1.Recordset.Update     '更新数据库
      

  2.   

    如果改成你那样,逻辑上就说不过去了吧???
    1899是不是跟我的SQL2005的数据类型有关?
    两个时间点的数据类型我全部设成datetime了,很困惑..
      

  3.   

    public ssss as date
    如果你没有给ssss赋值,那么默认日期就是1899-12-30 00:00:00当每一次load form1时,你新增了一条数据,此时全局变量ssss没有赋值,所以默认为1899-12-30 00:00:00
    如果你状况结束时间是unload form1时的值,那么你应该在form1_unload中更新你对应的数据:
      

  4.   

    是这样子呀~~~
    那这个逻辑应该怎么弄呢.
    我有点弄不来了,form3是主界面,其实form11相当于一个msgbox,我需要记录的是弹出form11时的时间,和关闭form11的时间
    然后我就准备在form3中添加到数据库中,但是上面的SSSS总有延迟的感觉,是不是应该在form11_unload中使用update来实现?
    但是没有条件来确定该记录,因为记录的时间是一直变化,记录的编号又不是唯一的,所以不知道怎么办..
      

  5.   


    你觉得你的思路是对的,应该在form11_unload中使用update,这样:
    sql="update tb set 状况结束时间=now where 生产状况编号=" & int(Text1.Text)如果 生产状况编号 也不能确定唯一记录,那你在form1上声明一个变量,记录form1载入时间,也就是状况发生时间,用这个做为更新条件应该可以了吧?