2

基本上我需要找到给定数据集中的最大值并记录该值以将其应用于另一条记录。

我尝试使用 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

4

2 回答 2

2

使用 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。这在多用户环境中要安全得多。

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
于 2012-10-01T13:46:34.030 回答
0

尝试这个:

strSource3 = dmax("[field_name]","table_name")
于 2012-10-01T13:50:51.550 回答