有没有更高效的方式在一个Form的不同文本框中显示多个查询结果
Is there a more efficient way to display multiple query results in different text boxes on a Form
我有一个包含多个不同文本框的表单。每个文本框都填充了不同查询的结果。我对 VBA / Access 不是很熟悉(我正在自学)并且不确定我正在做的事情是否最有效。我希望有人可以建议一种使用不同查询在表单上填充文本框的不那么麻烦的方法,或者甚至可以建议一种更好的变量命名约定。
*edit - 我认为有一种方法可以将公式直接放在文本框中,而不是通过 VBA 来完成,但我收到了#name 错误。
Private Sub Form_Load()
Dim db As DAO.Database
Dim qdf As QueryDef
Dim rst As Recordset
Dim qdf2 As QueryDef
Dim rst2 As Recordset
Set db = CurrentDb()
Set qdf = db.QueryDefs("QryGetTotalTransactions")
Set rst = qdf.OpenRecordset
Set qdf2 = db.QueryDefs("QryGetTotalTransactionsInManagement")
Set rst2 = qdf2.OpenRecordset
[Form_Portfolio Status].TotalTransaction_txt.Value = rst![Total]
[Form_Portfolio Status].TotalInManagement_txt.Value = rst2![Total]
End Sub
在这两个示例中的每一个中,您都从已保存的查询中检索单个值。因此 DLookup 可以用更少的代码获取值。
DLookup("[Total]", "QryGetTotalTransactions")
DLookup("[Total]", "QryGetTotalTransactionsInManagement")
您可以将 DLookup
return 值分配给文本框的 .Value
属性 ...,就像您处理记录集值一样。或者您可以使用 DLookup
表达式作为文本框 Control Source.
关于效率,DLookup
性能不太可能比记录集方法快。但是您不需要所有这些代码来管理 DAO 对象。因此,也许可以节省开发人员的时间,这应该很重要。 :-)
我有一个包含多个不同文本框的表单。每个文本框都填充了不同查询的结果。我对 VBA / Access 不是很熟悉(我正在自学)并且不确定我正在做的事情是否最有效。我希望有人可以建议一种使用不同查询在表单上填充文本框的不那么麻烦的方法,或者甚至可以建议一种更好的变量命名约定。
*edit - 我认为有一种方法可以将公式直接放在文本框中,而不是通过 VBA 来完成,但我收到了#name 错误。
Private Sub Form_Load()
Dim db As DAO.Database
Dim qdf As QueryDef
Dim rst As Recordset
Dim qdf2 As QueryDef
Dim rst2 As Recordset
Set db = CurrentDb()
Set qdf = db.QueryDefs("QryGetTotalTransactions")
Set rst = qdf.OpenRecordset
Set qdf2 = db.QueryDefs("QryGetTotalTransactionsInManagement")
Set rst2 = qdf2.OpenRecordset
[Form_Portfolio Status].TotalTransaction_txt.Value = rst![Total]
[Form_Portfolio Status].TotalInManagement_txt.Value = rst2![Total]
End Sub
在这两个示例中的每一个中,您都从已保存的查询中检索单个值。因此 DLookup 可以用更少的代码获取值。
DLookup("[Total]", "QryGetTotalTransactions")
DLookup("[Total]", "QryGetTotalTransactionsInManagement")
您可以将 DLookup
return 值分配给文本框的 .Value
属性 ...,就像您处理记录集值一样。或者您可以使用 DLookup
表达式作为文本框 Control Source.
关于效率,DLookup
性能不太可能比记录集方法快。但是您不需要所有这些代码来管理 DAO 对象。因此,也许可以节省开发人员的时间,这应该很重要。 :-)