在 SQL 的 MSAccess 函数中使用变量

Using Variables in a MSAccess Function with SQL

我正在努力在我的所有 table 到 link 所有记录上输入自定义 ID 号,尝试标准化。

我有一个 EmployeeDetails table 和一个 LoginDetails table。据我了解,我需要一个名为 EmployeeID 的字段,并且我可以使用 SQL Select 代码,我必须像在其他表单上一样提取数据。 Username 也是 LoginDetails table 和 txt_Username 中的字段名称是登录页面上用户名的文本框。

目前我只是将它放在登录屏幕上以进行故障排除,但它最终会在创建新员工时被调用。唯一的问题是我对如何在 SQL 行中包含变量的知识,即:

Function newID(frm As Form)

    Dim db As DAO.Database
    Set db = CurrentDb

    index = 12345
         
    db.Execute "UPDATE LoginDetails " & "SET EmployeeID = index " & "WHERE Username = frm.txt_username.Value;"

End Function

我已经尝试了大约 2-3 天,也许在这里和那里几个小时才能让它工作,但我开始失去动力。我设法写了一行 SQL,它有一个静态值作为 EmployeeID,但是一旦你在混合中添加 VB 变量,它就不喜欢它了。

谁能帮帮我?

将 SQL 行视为包含 SQL 命令的字符串。

SQL 部分(table 名称,列名)是静态的,您需要连接从访问它获得的变量。所以你的行是:

db.Execute "UPDATE LoginDetails SET EmployeeID = " & index & " WHERE Username = '" & frm.txt_username.Value & "';"

此外,在连接时在 SQL 关键字之前留下一个 space 是很好的(防止在执行时出现问题)。

db.Execute "UPDATE LoginDetails " & "SET EmployeeID = " & index & " WHERE Username = '" & frm.txt_username.Value &"'; "