如何从SQL查询填充的列表框中获取信息?

时间:2014-03-11 03:55:04

标签: sql performance listbox access-vba

标题说的是模糊的问题,但是,我会更具体。我更像是一个具有VB,Java和C ++经验的硬件导向人员。我被要求修改Access中使用SQL查询从数据库中获取信息的表单。我正在尝试进行的编辑是一个表单,其中包含选择以缩小查询数据的范围,以显示在表单中心的列表框中(因此,像单选按钮一样指定对象的特定高度或权重)数据库)。选择它们时,将附加规范连接到一个字符串,然后作为SQL查询运行。我想要完成的是获取一列缩小的数据并找到列中的最大数字和列中数字的平均值。它看起来非常简单,并且知道如何使用常规列表和数组来做到这一点,但是由于我的知识有限,我感到很茫然。我考虑过制作另一个SQL字符串,但是在表单的另一部分中,它是用两个字符串完成的(因此,一个用于将数据放入数据库的列表框中,另一个用于拉取缩小数据的特定列) 。话虽这么说,每次拉同一组数据对我来说似乎不合逻辑,所以我想知道我是否可以从已经拉出的信息中提取信息。代码集的底部是:

ItemList.RowSource = vSQLStock
ItemList = Null
ItemList.Requery

QuoteList.RowSource = vSQLNonStock
QuoteList = Null
QuoteList.Requery

vSQLStock和vSQLNonStock都有自己的SQL字符串集合,这些字符串由这个函数运行,或者据我所知(我还在研究SQL)将缩小的项目放在QuoteList列表框中。我要问的是,是否有任何方法可以用来查看这些信息?具体来说,取一列并对数据进行一些计算。我不想运行另一个SQL查询并使服务器陷入困境,而是操纵用户计算机上的数据。

发生的事情的一个例子是用户选择项目是库存/非库存,按名称/代码/ ID搜索,然后将所有匹配放在表单上的列表框中。列表框显示数据行,其中包含名称,成本,大小,重量等列,我希望在“成本”列上进行计算。希望这是足够的信息;我很感激任何建议。

2 个答案:

答案 0 :(得分:0)

从你的问题看,你试图从SQL查询中获取最大值和平均值。

语法:

SELECT MAX(myColumn) as MyMax, AVG(myColumn) as MyAverage
FROM   myTable
WHERE  . . .

将返回SQL Server或MS Access中的最大值和平均值

答案 1 :(得分:0)

如果您真的已经并且已经决定在本地使用您已从服务器检索到的数据,那么您可能需要考虑使用adodb.recordsets。你可以像对待一样对待它。那种。

我真的建议您查询服务器以获取所需的数据。这是一个更简单的世界。

dim rs as ADODB.Recordset
Set rs = QuoteList.Recordset

rs.MoveFirst
Do Until rs.EOF
    ' loop through recordset doing something
    rs.MoveNext
Loop