投稿日 | : 2004/04/28(Wed) 11:30 |
投稿者 | : るしぇ |
Eメール | : |
URL | : |
タイトル | : Re^3: コンボボックスAddItem時に重複するデータを登録しない |
> このコードで行くと、CmbTan.List(i)をFor文で調べている最中に.AddItemがあるので
> 重複データが見つかるまで、CmbTanに追加されてしまうような気がするので、
おぅ☆。失礼しました。ってゆーかエラーが出なかったので気にしなかったんですが
i も .ListCount - 1 までですよね。朝は頭が働いてません(滅)。じゃ、これで。
With CmbTan
Do While True
For i = 0 To .ListCount - 1
If .List(i) = CStr(Val(Data(12, a))) Then
Exit Do
End If
Next i
.AddItem (Val(Data(12, a)))
Exit Do
Loop
End With
汎用化するなら(というかこっちの方が形としていいと思いますが…)
Private Sub TxtA_KeyDown(KeyCode As Integer, Shift As Integer)
Dim a As Integer
Dim MaxRec As Integer
'Enterのタイミングで実行
If KeyCode = vbKeyReturn Then
MaxRec = UBound(Data, 2)
For a = 0 To MaxRec
If Val(Data(1, a)) = Val(TxtA.Text) Then
Call SameComboItemCheck(Me.CmbTan, CStr(Val(Data(12, a))))
End If
Next a
End If
End Sub
Private Sub SameComboItemCheck(ByVal ComboBoxX As ComboBox, ByVal AddText As String)
Dim i As Integer
With ComboBoxX
For i = 0 To .ListCount - 1
If .List(i) = AddText Then
Exit Sub
End If
Next i
.AddItem (AddText)
End With
End Sub