-2

如何使用 vb 6.0 计算账户余额并访问 dbase 示例:

January 2000   2500.00
Febuary 2000   2300.00

当用户选择 2000 年 1 月时,它将显示 2500.00,当用户选择 2000 年 2 月时,它将显示 4800.00。

希望任何人都可以帮助我谢谢

Dim TOTAL, FMACT As Double 
TOTAL = 0 
Set rs2 = New ADODB.Recordset 

With rs2 
    .Open "SELECT * FROM SW WHERE dtaYear=" & cmbYear.Text & " ", Con, 1, 2 
    Let FMACT = rs2![SWACTFM] 

    If .RecordCount > 0 Then 
        TOTAL = TOTAL + FMACT 
        .MoveFirst 

        Do While rs2.EOF = True 
            .MoveNext 
            ExcelWS.Cells(6, 7) = TOTAL 
        Loop 
    End If 

   .Close 
   Set rs2 = Nothing 
End With
4

1 回答 1

0

你的代码有问题

  1. 由于 Total 在Do While循环之外,因此它没有累积
  2. .MoveNext应该在之后执行ExcelWS.Cells(6,7) = TOTAL,否则会错过第一条记录

我不确定您想要什么,如果您每次只想从数据库中获取一条记录,您似乎不需要 while 循环。你可以试试这个。

Private Total As Double
Total = 0

Private Sub Cal_Total()
    Set rs2 = New ADODB.Recordset 

    With rs2 
        .Open "SELECT * FROM SW WHERE dtaYear=" & cmbYear.Text & " ", Con, 1, 2 

        .MoveFirst
        If .RecordCount > 0 Then 
            Do While rs2.EOF = False 
                Total = Total + rs2![SWACTFM]
                .MoveNext
            Loop

            ExcelWS.Cells(6,7) = Total
        End If 

       .Close 
       Set rs2 = Nothing 
    End With
End Sub
于 2012-05-17T04:27:21.677 回答