VB6.0中的问题
最近写了一段VB的代码如下,但是在执行了if嵌套语句后,countn,countq,county没有变化,显示到文本框中的数字仍然为0。现请各位大虾帮我改改吧。万分感激啊!
Private Sub Command1_Click()
Dim Address As String
Dim Location As String
Dim Humidity As Double
Dim countn As Integer
Dim countq As Integer
Dim county As Integer
Dim i As Integer
countn = 0
countq = 0
county = 0
Address = Text1.Text 'Text1中输入文本类型
For i = 0 To 139
Location = Adodc1.Recordset.Fields("location").Value '读数据库这里没有问题
Humidity = Adodc1.Recordset.Fields("湿度").Value
If Location = Address Then
If Humidity < 0.8 Then
countn = countn + 1
ElseIf Humidity < 0.9 Then
countq = countq + 1
Else
county = county + 1
End If
End If
Next i
Text2.Text = countn
Text3.Text = countq
Text4.Text = county
End Sub
Private Sub Command2_Click()
frmcom.Show
Unload Me
End Sub
[解决办法]
自己断点跟踪下吧,可能是Location = Address 这里不相等所以下面if一段都不执行,自己调试下
[解决办法]
学会用DEBUG.PRINT
[解决办法]
首先分析一下你代码的功能,大概是这样的:数据库中存放着各地采集到的湿度历史数据,你选择比如“1车间”,这时就把数据库中1车间中所有的湿度统计出来,即它们分布在0.8,0.9,及以上的不同次数。
出现值未变化,即未统计 可能有以下几个方面原因:
1,你选定的地点,库中根本没有记录;
2,你的记录一直没有变化,没有看到你的记录集移动的代码;
3,139是什么意思,指你表中的记录数吗?
综上,建议使用ADO访问数据库。
dim rs,db,sql
set db=opendatabase(app.path+"\test.mdb")
sql="select * from mytable where location='" & trim(text1.text) & "'"
set rs=db.openrecordset(sql)
if rs.bof or rs.eof then msgbox "没有记录"
while not rs.eof
Humidity =rs("湿度")
If Humidity < 0.8 Then
countn = countn + 1
ElseIf Humidity < 0.9 Then
countq = countq + 1
Else
county = county + 1
End If
rs.movenext
wend
rs.close
db.close
set rs=nothing
set db=nothing