Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 将当前日期时间插入审核表_Ms Access_Vba - Fatal编程技术网

Ms access 将当前日期时间插入审核表

Ms access 将当前日期时间插入审核表,ms-access,vba,Ms Access,Vba,我正在实施审计日志,以记录数据库更改的简要说明。我的审核表由自动编号PK、empID(编号)、说明(备忘录)和审核日期(日期/时间)组成。我的empID和描述正在正确插入,没有抛出错误,但我的日期/时间没有被插入。我认为这可能不像放错引号那么简单。我的VBA代码如下所示: 在afterInsert事件中: Dim strQuery As String 'Dim js As Integer Dim currDateTime As Date currDateTime = Now() strQue

我正在实施审计日志,以记录数据库更改的简要说明。我的审核表由自动编号PK、empID(编号)、说明(备忘录)和审核日期(日期/时间)组成。我的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)
就像我说的,我可以得到前三个值,但是当我试图插入日期时间时,我遇到了问题。欢迎您的任何意见。希望这不像放错引号那么简单,因为我在提交这个问题之前尝试了四种不同的引号位置:)

这样试试

strQuery=“插入审计([emp编号]、[Description]、审计日期)”&_
vbCrLf&“值(&Me.empID&,'insertion',Now())”
也给自己一个机会来检查完成的文本字符串

<代码>调试.Print strQuery 使用这种方法,您不需要使用
currDateTime
变量。日期/时间值将在db引擎计算
Now()函数时确定。。。执行
INSERT
语句的时间

如果希望按照原始方法计算时间,请格式化
currDateTime
并添加
分隔符

strQuery=“插入审计([emp编号]、[Description]、审计日期)”&_
vbCrLf&“值(“&Me.empID&“,‘插入’,”&”_
格式(currDateTime,\\\ yyyy-mm-dd hh:nn:ss\\ \ \ \ \ \“”&“

尝试将日期时间设置为以下格式:

protected DateTime GetDateWithoutMilliseconds(DateTime d)
    {
        return new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second);
    }

很有魅力,谢谢你,我会接受你的回答。另一方面,我注意到,在我对代码所在的表单执行其他操作之前,不会提交此插入。是否有一个简单的命令可以在执行查询后执行并提交数据?哪个是insert事件之后?我想你是说表格是在插入事件之后。在这种情况下,该行应该已经保存。如果您正在使用某些表单控件的after insert,请切换到form after insert事件。如果听起来我误解了您的评论,请重试。:-)它现在似乎起作用了,但以前,我遇到了一些麻烦。在表单上插入后,在afterInsert()事件中,我将运行此SQL以插入到审计中。但是,如果我在从表单中插入员工后调出审计表,则还不会有此插入的记录。我想知道并发使用是否会有问题,因为在VBA代码中插入表单和插入审核日志之间似乎有一段时间\不管怎样,它现在似乎工作得很好。谢谢你的帮助!谢谢,
Now()
帮我省了一天的时间。:)