我在MS Access 2016中拥有数据库,并且想通过Excel VBA运行更新查询-这可行。之后,我想返回更新行的详细信息(两列中的值-ID,Col1)。现在我只有一些受影响的行。如何实现呢?
我的查询:
UPDATE
(SELECT TOP 1 ID, Col1, Update_time, Update_user
FROM Table1
WHERE Update_user Is Null
ORDER BY Col2 DESC , ID) AS U_ROW
SET U_ROW.Update_time = Now(), U_ROW.Update_user = [username];
在Excel VBA中,我通过ADODB运行它。命令:
With baseRecordsetCommand
.ActiveConnection = objectConnection
.CommandType = adCmdStoredProc
.CommandText = "qryTest"
.NamedParameters = True
.Parameters.Append .CreateParameter("@username", adVarChar, adParamInput, 255, LCase(Environ("Username")))
.Execute recordsAffected
End With
不确定,但是如果您有唯一的ID,则可以执行以下操作。这是在Access中完成的,因此需要建立连接,因为我认为可以。
Function sqlret() As String
Dim c As ADODB.Connection
Dim s As String
Dim r As ADODB.Recordset
Dim l As Long
Set c = CurrentProject.Connection
c.Execute "insert into tblprojects(projecttitle) values ('code1')"
Set r = New ADODB.Recordset
r.Open "select @@identity", c, 1
l = r.Fields(0).Value
r.Close
r.Open "select * from tblprojects where [projectid]=" & l, c, 1
sqlret = r.GetString
End Function