VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -