我正在实施审核日志以记录对数据库所做更改的简要描述。我的审计表包括自动编号PK,empID(编号),描述(备忘录)和auditDate(日期/时间)。正确插入我的empID和描述而不会抛出错误,但我的日期/时间没有被插入。我认为这可能不像错位的引号那么简单。我的VBA代码如下:
在afterInsert事件中:
Dim strQuery As String
'Dim js As Integer
Dim currDateTime As Date
currDateTime = Now()
strQuery = "INSERT INTO Audits ([emp Number], Description, dateofAudit) VALUES (" & Me.empID & ", '" & "insertion" & "'," & currDateTime & " )"
CurrentDb.Execute (strQuery)
就像我说的那样,我可以很好地获得前三个值,但是当我尝试插入日期时间时,我遇到了问题。任何输入都表示赞赏。希望这并不像错误的引号那么简单,因为我在提交这个问题之前尝试了4种引号放置:)
答案 0 :(得分:6)
以这种方式试试。
strQuery = "INSERT INTO Audits ([emp Number], [Description], dateofAudit)" & _
vbCrLf & "VALUES (" & Me.empID & ", 'insertion', Now())"
同时让自己有机会检查完成的文本字符串。
Debug.Print strQuery
使用这种方法,您不需要currDateTime
变量。当db引擎评估Now()
函数... INSERT
语句执行的时间时,将确定日期/时间值。
如果您希望按原始方法计算时间,请格式化currDateTime
并添加#
分隔符。
strQuery = "INSERT INTO Audits ([emp Number], [Description], dateofAudit)" & _
vbCrLf & "VALUES (" & Me.empID & ", 'insertion', " & _
Format(currDateTime, "\#yyyy-mm-dd hh:nn:ss\#") & ")"
答案 1 :(得分:0)
尝试格式化日期时间,如下所示:
protected DateTime GetDateWithoutMilliseconds(DateTime d)
{
return new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second);
}