【问题标题】:How to get info from a listbox populated by an SQL query?如何从由 SQL 查询填充的列表框中获取信息?
【发布时间】:2014-03-11 03:55:04
【问题描述】:

标题说的是模糊的问题,但我会更具体。我更像是一个面向硬件的人,在 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 搜索,然后将所有匹配项放在表单的列表框中。列表框显示带有名称、成本、大小、重量等列的数据行,我希望在成本列上对其进行计算。希望这是足够的信息;我很感激任何建议。

【问题讨论】:

    标签: sql performance ms-access listbox vba


    【解决方案1】:

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

    语法:

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

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

    【讨论】:

      【解决方案2】:

      如果您确实有约束力并决心使用已从服务器检索到的数据在本地执行此操作,那么您可能需要考虑使用 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
      

      【讨论】:

        猜你喜欢
        • 2018-02-19
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 1970-01-01
        • 1970-01-01
        • 2019-04-21
        相关资源
        最近更新 更多