0

我已经在 Access 2007 上编写了代码,我想在运行它时显示答案,但它没有显示。我想有一个代码我遗漏了,请帮忙显示。

代码是:

Private Sub cmdCalculate_Click()
    On Error GoTo ErrorHandling
    Dim rsAsset As Recordset
    Dim SQL As String
    SQL = "SELECT * FROM Asset WHERE Asset.Asset_Condition ='Repairs';"
    Set rsAsset = CurrentDb.OpenRecordset(SQL)
    Dim Total As Integer
    Total = 0
    rsAsset.MoveFirst
    While (Not rsAsset.EOF)
        Total = Total + rsAsset!Asset_Condition
        rsAsset.MoveNext
    Wend
    Dim Ave As Double
    Ave = Total / rsAsset.RecordCount
    Debug.Print "Total Repairs= " & Total

    Exit Sub
ErrorHandling:
    MsgBox Err.Description
    rsAsset.Close
End Sub

我已经用数据填充了表格,但不知道如何编写显示答案的代码。

4

1 回答 1

0

有时你会这样做WHERE Asset.Asset_Condition ='Repairs',而在另一点你威胁“Asset_Condition”,就好像它是一个数值 ( Total = Total + rsAsset!Asset_Condition)。
现在。“Asset_Condition”是文本还是数字?

而且,为什么不使用 SQL 来进行数学运算,而不是从 VBA 中逐一查看记录呢?在这里试试这个人,假设“Asset_RepairCost”是数据表中现有的数字字段,而“Asset_Condition”是文本:

SELECT SUM(Asset_RepairCost) AS 'TotalRepair', AVG(Asset_RepairCost) AS 'AverageOfTotalRepair' FROM Asset WHERE Asset.Asset_Condition ='Repairs'

于 2013-04-26T11:30:05.093 回答