求助!变量为何无法赋值?
一小程序总是无法正常计算,调试发现是字段的值未能赋给变量,但是没有出错信息,请教大虾,问题出在哪里呢?程序代码如下:
Sub HIGH1()
rs_VMT.MoveFirst
rs_Realratio.MoveFirst
rs_EF.MoveFirst
Do While Not rs_VMT.EOF
case_vmt = rs_VMT.Fields("Case")
year_vmt = rs_VMT.Fields("Year").value
area_vmt = rs_VMT.Fields("Area").value
vmt = rs_VMT.Fields("VMT").value
speed_vmt = rs_VMT.Fields("Speed").value
变量case_vmt等可以成功得字段值
If case_vmt = "high1" Then
rs_EF.Filter = "year = '" & year_vmt & "' and speed = '" & speed_vmt & "'"
Do While Not rs_EF.EOF
以下的变量COEF等无法获得字段值,全部为0
COEF = rs_EF.Fields("CO_EF").value
HCEF = rs_EF.Fields("HC_EF").value
NOxEF = rs_EF.Fields("NOx_EF").value
PMEF = rs_EF.Fields("PM_EF").value
If rs_EF.Fields("Mobiletype") = "LDGV" Then
LDGV_COEF = COEF
LDGV_HCEF = HCEF
LDGV_NOxEF = NOxEF
LDGV_PMEF = PMEF
ElseIf rs_EF.Fields("Mobiletype") = "LDGT*" Then
LDGT_COEF = COEF
LDGT_HCEF = HCEF
LDGT_NOxEF = NOxEF
LDGT_PMEF = PMEF
End If
rs_EF.MoveNext
Loop
If OptArea1.value = True Then
rs_Realratio.Filter = "year = '" & year_vmt & "' and case = 'high1'and Area_ID = '1'"
End If
If OptArea2.value = True Then
rs_Realratio.Filter = "year = '" & year_vmt & "' and case = 'high1'and Area_ID = '2'"
End If
以下变量LDGV_ratio等也无法获得字段的值。
LDGV_ratio = rs_Realratio.Fields("LDGV").value
LDGT_ratio = rs_Realratio.Fields("LDGT").value
rs_Realratio.MoveNext
'计算区域排放总量
total_emission_CO_LDGV = vmt * LDGV_ratio * LDGV_COEF
total_emission_CO_LDGT = vmt * LDGT_ratio * LDGT_COEF
total_emission_HC_LDGV = vmt * LDGV_ratio * LDGV_HCEF
total_emission_HC_LDGT = vmt * LDGT_ratio * LDGT_HCEF
total_emission_NOx_LDGV = vmt * LDGV_ratio * LDGV_NOxEF
total_emission_NOx_LDGT = vmt * LDGT_ratio * LDGT_NOxEF
total_emission_PM_LDGV = vmt * LDGV_ratio * LDGV_PMEF
total_emission_PM_LDGT = vmt * LDGT_ratio * LDGT_PMEF
' 将计算结果写入Total_emission表
计算结果无法写入表rs_totalemission
rs_totalemission.AddNew
rs_totalemission.Fields("case") = case_vmt
rs_totalemission.Fields("year") = year_vmt
If OptArea1.value = True Then
rs_totalemission.Fields("area") = 1
ElseIf OptArea2.value = True Then
rs_totalemission.Fields("area") = 2
End If
rs_totalemission.Fields("Mobiletype") = "LDGV"
rs_totalemission.Fields("CO") = total_emission_CO_LDGV
rs_totalemission.Fields("NOx") = total_emission_NOx_LDGV
rs_totalemission.Fields("NMHC") = total_emission_HC_LDGV
rs_totalemission.Fields("PM") = total_emission_PM_LDGV
rs_totalemission.AddNew
rs_totalemission.Fields("case") = case_vmt
rs_totalemission.Fields("year") = year_vmt
If OptArea1.value = True Then
rs_totalemission.Fields("area") = 1
ElseIf OptArea2.value = True Then
rs_totalemission.Fields("area") = 2
End If
rs_totalemission.Fields("Mobiletype") = "LDGT"
rs_totalemission.Fields("CO") = total_emission_CO_LDGT
rs_totalemission.Fields("NOx") = total_emission_NOx_LDGT
rs_totalemission.Fields("NMHC") = total_emission_HC_LDGT
rs_totalemission.Fields("PM") = total_emission_PM_LDGT
rs_totalemission.Update
Else
rs_VMT.MoveNext
End If
Loop
MsgBox "Complete!"
End Sub
请教以上问题究竟出在哪里呢?我非常着急,希望大虾花点时间看一看,谢谢!