|
本帖最后由 zixiaoruixue 于 2014-3-17 10:28 编辑
请问各位前辈可以帮我看看下面问题吗?
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Submitted"
ComboBox1.AddItem "Cancelled"
ComboBox1.AddItem "Approved"
ComboBox1.AddItem "Rejected"
ComboBox1.AddItem "Repealed"
End Sub
Private Sub CommandButton1_Click()
Dim Serial$, Rst As New ADODB.Recordset, Strsql$, Ctl As Control, i%
On Error GoTo ErrLine
If Len(TextBox1) = 0 Then
MsgBox "Pls input serial number", 1 + 16, "alert"
TextBox1.SetFocus
Exit Sub
End If
If Condb("TargetDatabase.accdb") = False Then GoTo Line1
Strsql = "select distinct ACCTNO,CUSTNM,Status from [Table] where SerialNum='" & _
TextBox1 & "' order by ACCTNO"
Set Rst = cnn.Execute(Strsql)
If Rst.EOF And Rst.BOF Then MsgBox "Cannot find Serial number": GoTo Line1
i = 1
Do Until Rst.EOF
i = i + 1
If i > 7 Then Exit Do
If Len(TextBox2) = 0 Then TextBox8 = Rst.Fields("CUSTNM")
TextBox9 = Rst.Fields("Status")
Me.Controls("TextBox" & i) = Rst.Fields("ACCTNO")
Rst.MoveNext
Loop
If TextBox9.Text = "Submitted" Then
ComboBox1.RemoveItem (0)
ComboBox1.RemoveItem (4)
ElseIf TextBox9.Text = "Approved" Then
ComboBox1.RemoveItem (0)
ComboBox1.RemoveItem (1)
ComboBox1.RemoveItem (2)
ComboBox1.RemoveItem (3)
'请问各位前辈,我的代码这里出了点问题。
在这里用户点了按钮以后验证:如果TextBox9的值是“Submitted”,我就把‘ComboBox1里的项目“Submitted”(INDEX 0),和项目“Repealed”(INDEX 4)删除;
’如果TextBox9的值是Approved,我就把ComboBox1里项目INDEX0到3全部删除,只留下项目“Repealed”(INDEX4).
‘我发现如果我代码这么写,用户点按钮后第一次验证结果TextBox9的值是“Submitted”时,我的ComboBox1里的项目可以删’除正确
‘但如果用户连续点第二次,验证结果TextBox9的值如果还是“Submitted”时,我的ComboBox1里的项目就删乱了,因为第二次’的时候我的INDEX1的值就变成INDEX0了,因为之前验证的时候,程序已经帮我把最开始的INDEX0里的项目删除了。
‘请问各位大神有没有什么解决办法啊?
End If
Line1:
Set Rst = Nothing: Exit Sub
ErrLine:
MsgBox Err.Description: GoTo Line1
End Sub
zixiaoruixue 发表于 2014-3-17 09:28
我说的是COMBOBOX,我的COMBOBOX里本来的内容是
ComboBox1.AddItem "Submitted"
ComboBox1.AddItem " ...
可以利用数组加载。
ComboBox1.List = Array(1, 2, 3, 4, 5)
|
|