基本上,我需要找到给定数据集中的最大值并记录该值以将其应用到另一个记录。
我尝试使用 SQL“SELECT MAX(SCID) FROM [Stock Conversion];”但这只是将这段SQL输入到表上的Field中。
现在我已经创建了一个查询来查找该值,有没有办法在代码中引用查询结果来实现此目的?
这是上下文代码:
Private Sub listResult_DblClick(Cancel As Integer)
Dim sc1 As DAO.Recordset
Set sc1 = CurrentDb.OpenRecordset("Stock Conversion Items", dbOpenDynaset)
Dim strSource3 As String
strSource3 = DONT KNOW
sc1.AddNew
sc1.Fields("[SCID]").Value = strSource3
sc1.Fields("[Result PC]").Value = Me.listResult.Column(0)
sc1.Fields("[Status]").Value = "NEW"
sc1.Update
End Sub
提前致谢, 鲍勃·P
最佳答案
通过 MS Access,您可以使用域聚合函数:
strSource3 = DMax("MyField","MyTable")
如果您想使用 SQL,那么:
Dim rs As Recordset
Set rs = CurrentDB.Openrecordset( _
"SELECT MAX(SCID) As MaxSCID FROM [Stock Conversion];")
strSource3 = rs!MaxSCID
在多用户环境中要非常小心最大值。它们可能会因其他用户输入数据而发生变化。
来自聊天
看来可以使用LasModified从之前的代码中获取所需的ID。属性(property)。这在多用户环境中要安全得多。
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)
rs.AddNew
rs!AField = "abc"
rs.Update
rs.Bookmark = rs.LastModified
strSource3 = rs!SCID
关于sql - 在VBA中引用查询结果,也许可以使用SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674242/