2010-09-30 44 views
2

定义更多的一个条件,我想这样的事情:如何在一段时间

While Not RdoRst.EOF And RdoRst(2) = "Foo" 
     cboComboBox.AddItem RdoRst(1) 
     cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0) 
     RdoRst.MoveNext 
Wend 

我想要表达的1(不RdoRst.EOF)首先被计算。然后如果它返回true,表达式2也被计算(RdoRst(2)=“Foo”)。如果表达式1返回false,则不评估表达式2。

问候,

弗洛里安

+0

始终使用'Do ... Loop'而不是'While ... Wend'。 'Do'循环可以通过'Exit Do'退出,这将最容易解决你的问题。 – wqw 2010-10-01 14:54:23

回答

1

AndAlso是不是在VB6用。尝试这种

Do 
    If RdoRst.EOF Then Exit Do 
    If Not RdoRst(2) ="Foo" Then Exit Do  
    cboComboBox.AddItem RdoRst(1) 
    cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0) 
    RdoRst.MoveNext 
Loop 
0
While Not RdoRst.EOF 
    If RdoRst(2) = "Foo" Then 
     cboComboBox.AddItem RdoRst(1) 
     cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0) 
    Else 
     Exit Wend 
    End If 
    RdoRst.MoveNext 
Wend 
+0

好主意,但是你的代码行为和问题中的代码不一样吗?当发现非Foo值时,问题中的代码立即停止循环。你的代码不断循环寻找另一个Foo。 – MarkJ 2010-10-01 08:42:59

+0

你说得对,我应该把ELSE退出​​温德 – 2010-10-01 12:26:49

0

问题涉及条件表达式的“短路”的评价。那么VB6不支持这个功能。我知道这很愚蠢。