是否使用VBA在Access表中执行加法/减法?
我正在使用查询中的数据填充一个诱人的in Access。到目前为止,我已经填充了3列(添加、删除、购买),我正试图找到其中三列的总数。问题是,很多人没有价值观,其中一些是负值。我该怎么做呢?我有rs2(“添加”)、rs2(“删除”)和rs2(“购买”)中的数据。因此,所有的增加值(如果有的话)都是正值,所有的删除值都是负值(如果有的话),所有的购买值都是正值 我想做一个循环,可能 我将记录数取为intRsCount=25是否使用VBA在Access表中执行加法/减法?,vba,ms-access,Vba,Ms Access,我正在使用查询中的数据填充一个诱人的in Access。到目前为止,我已经填充了3列(添加、删除、购买),我正试图找到其中三列的总数。问题是,很多人没有价值观,其中一些是负值。我该怎么做呢?我有rs2(“添加”)、rs2(“删除”)和rs2(“购买”)中的数据。因此,所有的增加值(如果有的话)都是正值,所有的删除值都是负值(如果有的话),所有的购买值都是正值 我想做一个循环,可能 我将记录数取为intRsCount=25 With rs2 While Not .EOF l
With rs2
While Not .EOF
lngCompanyID = rs2("CompanyID")
lngUnitPrice = rs2("UnitPrice")
strSQL2 = "SELECT AddQty from qryAddx WHERE InvValue = " & lngUnitPrice & " And CompanyId = " & lngCompanyId
strSQL3 = "SELECT DeleteQty from qryUsedx where UnitValue=" & lngUnitPrice & " And CompanyId = " & lngCompanyId
strSQL4 = "SELECT BuyQty from qryVoidx where InvValue =" & lngUnitPrice & " And CompanyId = " & lngCompanyId
Set rs3 = CurrentDb.OpenRecordset(strSQL2)
Set rs4 = CurrentDb.OpenRecordset(strSQL3)
Set rs5 = CurrentDb.OpenRecordset(strSQL4)
If rs3.recordCount > 0 Then
rs2.Edit
rs2("Added") = rs3("Addqty")
rs2.Update
End If
If rs4.recordCount > 0 Then
rs2.Edit
rs2("Delete") = rs4("DelQty")
rs2.Update
End If
If rs5.recordCount > 0 Then
rs2.Edit
rs2("Buy") = rs5("BuyQty")
rs2.Update
End If
rs2.MoveNext
Set rs3 = Nothing
Set rs4 = Nothing
Set rs5 = Nothing
Wend
End With
这是我的密码。我正在尝试添加添加、删除和购买的总和,并将其放入rs2(“小计”),然后对所有25行执行此操作。我不太熟悉ACCESS以及它如何处理空值和负值(所有删除值都是负值)。谢谢。如果rs2是一个记录集,您可以参考以下列:
rs2.fields(“Add”).Value
做循环通过行,与
if rs2.recordcount > 0 then
rs2.movefirst
while not rs2.eof
'put your commands here
wend
end if
效率低下。如果您正在运行许多操作,它可能会很慢,但在其他情况下也可以李>DSum()
将空值转换为零Nz()
Dim strCriteria as String
With rs2
While Not .EOF
strCriteria = "InvValue = " & !UnitPrice & " And CompanyId = " & !CompanyID
.Edit
!Added = Nz(DSum("Addqty", "qryAddx", strCriteria), 0)
!Delete = Nz(DSum("DeleteQty", "qryUsedx", strCriteria), 0)
!Buy = Nz(DSum("BuyQty", "qryVoidx", strCriteria), 0)
.Update
Wend
End With