SQL 访问中的字符串 VBA 未按预期运行

SQL string in access VBA not behaving as expected

我有一点访问权限VBA,对于我来说,我无法弄清楚哪里出了问题。

首先,这是有问题的代码部分,我将在下面解释我想要什么以及它在做什么。

        loguser = Environ$("USERNAME")
        sqlstr = "INSERT INTO bypass_logins ([timestamp], [selected_user], [logged_in_user]) VALUES (" & Format(Now(), "dd/MM/yyyy") & "," & gstrUser & "," & loguser & ")"
        Debug.Print sqlstr
        'runs sql string above to write back to db
        DoCmd.SetWarnings False
        DoCmd.RunSQL sqlstr
        DoCmd.SetWarnings True

第一行是为了捕获登录到 PC 的用户名 运行 代码,它确实这样做了,并通过 debug.print 监控来确认。 sqlstr 的目的是然后写入一个日期,从该代码前面的表单上的框中选择的用户名(gstrUser)和上面的用户名到数据库中的相应字段table“绕过登录”。

但是,我在计算此字符串时看到的是一个弹出框,其中用户名 return 由 loguser 作为唯一文本编辑,然后是一个带有确定按钮的输入框。 无论我在此弹出窗口的输入字段中输入什么,都是输入到 sqlstr 中然后由 DoCmd.RunSQL sqlstr 处理并写回数据库的内容。如果我将该框留空并点击确定,则此字段中不会写入任何内容,字符串将变为 INSERT INTO bypass_logins ([timestamp], [selected_user], [logged_in_user]) VALUES (13/08/2020,43,)(例如)

不太确定这里发生了什么,或者我哪里出错了,但我在想可能是字符串创建中使用的特殊字符 return 变量?

提前致谢

文本和日期时间不能没有分隔符,而且必须调整日期格式,所以请尝试:

sqlstr = "INSERT INTO bypass_logins ([timestamp], [selected_user], [logged_in_user]) VALUES (#" & Format(Date(), "yyyy\/mm\/dd") & "#,'" & gstrUser & "','" & loguser & "')"
    D