我正在 MS Access 中创建一个新查询,该查询根据“分支”和“员工”字段更新现有记录。如何设置标准以引用单元格值?说A2
拥有 Access 和 B2
的“分支”ID保存 Access 中“Employee” ID 的值。我想更新我的 Access“Notes”字段。我的查询在 Excel 中运行时有效,但这只是因为我指定了“Employee”和“Branch”ID 是什么。当我在下面运行我的代码时没有任何更新:
代码
Sub modify_record()
Dim ac As Object
Dim branchid As String
Dim employeeid As String
Dim notesF As String
Set ac = CreateObject("Access.Application")
branchid = Sheets("Sheet4").Range("A2")
employeeid = Sheets("Sheet4").Range("B2")
notesF = Sheets("Sheet4").Range("C2")
Dim strDatabasePath As String
strDatabasePath = "C:\Users\johnsmith\OneDrive\pbsbackup.mdb"
With ac
.OpenCurrentDatabase (strDatabasePath)
Dim db As Object
Set db = .CurrentDb
db.Execute "Update_Records"
End With
End Sub
在 MS Access 中查询。另存为 Update_Records
UPDATE pbsmaster SET pbsmaster.notes = "notesF" WHERE
(((pbsmaster.branch)="branchid") AND((pbsmaster.employee)="employeeid"));
最佳答案
您的变量不会神奇地转移到查询中,只是因为它们具有相同的名称。
您需要在 Access 查询中指定参数,并通过 DAO.QueryDef
传递它们Excel VBA 代码中的对象。
这是一个例子:https://stackoverflow.com/a/2317225/3820271
Dim qd As Object ' DAO.QueryDef
Set qd = db.QueryDefs("Update_Records")
qd.Parameters("branchid") = branchid
' etc.
qd.Execute
关于sql - 如何将 Excel 单元格值设置为 Access Query 的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55466504/