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
我有一点访问权限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