【发布时间】:2015-05-08 11:46:29
【问题描述】:
我正在使用 Access 2007 本身,没有连接到 SQLserver 或此过程的任何东西。
我想获取几个DateDiff 函数的结果并使用更新SQL 语句将它们放入表的字段中。我的表的字段是数字字段,我的印象是DateDiff返回一个数字。
我尝试了这个,但我在第一个 DateDiff (Pause1) 上收到 data type mismatch 错误。我尝试从字段中删除引号,但随后出现不同的错误 (can't find the field '|' referred to in your expression)。
这是我的代码。真正开始于评论TIME REPORTING CODE HERE:
Private Sub StopNextButton_Click()
'
GetID = Forms!frm_MainMenu!AssocIDBox
CurRecord = Forms!frm_EC_L1_L2![L#].Value
'
DoCmd.RunSQL "UPDATE tbl_Data SET tbl_Data.[tsEndAll] = Now WHERE tbl_Data.[L#] = " & CurRecord & " AND (tbl_Data.[ECName] Like 'L1*' OR tbl_Data.[ECName] Like 'L2*') "
'
'TIME REPORTING CODE HERE'
'
Pause1 = DateDiff("s", "[tsPause1]", "[tsResume1]")
Pause2 = DateDiff("s", "[tsPause2]", "[tsResume2]")
ECTime = (DateDiff("s", "[tsECStart]", "[tsUpdated]") - (Pause1 + Pause2))
LTime = DateDiff("s", "[tsStartAll]", "[tsEndAll]")
'
DoCmd.RunSQL "UPDATE tbl_Data SET [ECTime] = " & ECTime & ", [LoanTime] = " & LTime & " WHERE tbl_Data.[L#] = " & CurRecord & " AND (tbl_Data.[ECName] Like 'L1*' OR tbl_Data.[ECName] Like 'L2*') "
'
'END OF TIME REPORTING CODE'
'
DoCmd.GoToRecord , , acNext
'
ETC.
【问题讨论】:
-
当您说 tsPause1 ortsResume1 时,您认为/打算指的是什么?表格上的字段、表单上的控件或其他可能的东西?
-
表中包含日期时间值的字段。抱歉,谢谢您的提问。
-
没问题,只是想澄清一下。根据我认为您正在尝试做的事情,我发布了我认为下面的答案。