sql - 在VBA中引用查询结果,也许可以使用SQL?

标签 sql database vba ms-access

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

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

相关文章:

mysql - 在 RDS for MySQL 中创建没有权限的用户失败,错误 1396

windows - Excel 窗口和用户窗体最小化和最大化函数

excel - 在 Excel 所需单元格中弹出一个形状

MySQL 错误代码 : 1349. View 的 SELECT 包含 FROM 子句中的子查询

c# - Log4Net 不写入数据库

java - 打开 hibernate session 而不关闭它的影响

excel - 如何使用 Excel VBA 打开 Outlook excel 附件,在特定时间范围内发送到特定 Outlook 文件夹?

MySQL ORDER BY 另一个表的列名

python - 使用 Pandas 将大型 csv 导入数据库

带条件的 SQL 查询计数