VB高手来看看我这代码哪里错了

[复制链接]
查看11 | 回复5 | 2008-8-3 10:17:03 | 显示全部楼层 |阅读模式
Private Sub Command1_Click()
Dim QQWORDS(1) As String
QQWORDS(0) = "LIN"
QQWORDS(1) = "SHA"
Dim Q As Integer
For Q = (0) To (1)
Dim FLAG As Boolean
FLAG = False
If QQWORD = QQWORDS(Q) Then
FLAG = True
End If
Next Q
If FLAG = False Then
MsgBox "密码错误"
End
End If
End Sub
为什么我输入的密码对了还说我错???????请说说原因和修改,谢谢哦了

回复

使用道具 举报

千问 | 2008-8-3 10:17:03 | 显示全部楼层
正确的应该是: Private Sub Command1_Click() Dim QQWORDS(1) As String QQWORDS(0) = "LIN" QQWORDS(1) = "SHA" Dim Q As Integer For Q = (0) To (1) Dim FLAG As Boolean FLAG = False If QQWORD = QQWORDS(Q) Then FLAG = True exit for '关键是要加这一句 End If Next Q If FLAG = False Then MsgBox "密码错误" End End If End Su
回复

使用道具 举报

千问 | 2008-8-3 10:17:03 | 显示全部楼层
你在用flag这个变量的时候,这个变量在过程结束以后它的值就被释放了,也就是说你进行第一个if判断以后,它的值仍然是false,似乎看起来,在第一个判断中你对他进行了附值,让它的值为true,但是由于你用的变量是局部变量(是用DIM定义),它的值在过程结束时就被释放,但是你要是改成窗体变量,或者是静态变量,情况就不一样。建议使用静态变量。这样问题就解
回复

使用道具 举报

千问 | 2008-8-3 10:17:03 | 显示全部楼层
怎么每人的都不一样?哪个正确?晕了!
回复

使用道具 举报

千问 | 2008-8-3 10:17:03 | 显示全部楼层
问题是QQWORD没有赋值,则为空,所以If QQWORD = QQWORDS(Q) Then ...这句条件一直为假,那么FLAG一直=false所以一直弹出错误
回复

使用道具 举报

千问 | 2008-8-3 10:17:03 | 显示全部楼层
Private Sub Command1_Click() Dim QQWORDS(1) As String Dim FLAG(1) As Boolean QQWORDS(0) = "LIN" QQWORDS(1) = "SHA" Dim Q As Integer For Q = (0) To (1) FLAG(Q) = False
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行