用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
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
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 '更新数据库
1899是不是跟我的SQL2005的数据类型有关?
两个时间点的数据类型我全部设成datetime了,很困惑..
如果你没有给ssss赋值,那么默认日期就是1899-12-30 00:00:00当每一次load form1时,你新增了一条数据,此时全局变量ssss没有赋值,所以默认为1899-12-30 00:00:00
如果你状况结束时间是unload form1时的值,那么你应该在form1_unload中更新你对应的数据:
那这个逻辑应该怎么弄呢.
我有点弄不来了,form3是主界面,其实form11相当于一个msgbox,我需要记录的是弹出form11时的时间,和关闭form11的时间
然后我就准备在form3中添加到数据库中,但是上面的SSSS总有延迟的感觉,是不是应该在form11_unload中使用update来实现?
但是没有条件来确定该记录,因为记录的时间是一直变化,记录的编号又不是唯一的,所以不知道怎么办..
你觉得你的思路是对的,应该在form11_unload中使用update,这样:
sql="update tb set 状况结束时间=now where 生产状况编号=" & int(Text1.Text)如果 生产状况编号 也不能确定唯一记录,那你在form1上声明一个变量,记录form1载入时间,也就是状况发生时间,用这个做为更新条件应该可以了吧?