查看單個文章
舊 2008-04-26, 04:36 PM   #2 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時級別:97 | 在線時長:9815小時 | 升級還需:181小時
註冊日期: 2002-12-07
文章: 13321
精華: 0
現金: 26378 金幣
資產: 3024238 金幣
預設

很簡單的
看要用循序比對
還是
旗標紀錄
還是
使用ComboBox方式

<循序比對>
就是 除了自己外依序比對
自己是否已出現過
假設使用的 TextBox(名稱暫稱為 CodeNumberText) 是一序列的 Index從 1 到 6
語法:
    For i = 1 To 6
        If i <> Index Then
            If StrComp(CodeNumberText(i).Text, CodeNumberText(Index).Text) = 0 Then
                MsgBox "號碼已選過,請重新輸入沒選過的號碼", vbOKOnly, "錯誤"
                CodeNumberText(Index).Text = ""
            End If
        End If
    Next

<旗標紀錄>
先初始宣告一陣列
Dim IsUse(1 to 38) As Boolean
如果輸入 30號則
IsUse(30) = True
而在輸入前...
語法:
If IsUse(Index) = True Then
   MsgBox "號碼已選過,請重新輸入沒選過的號碼", vbOKOnly, "錯誤"
   CodeNumberText(Index).Text = ""
End If

<ComboBox>
需配合前面其一方法
比如旗標紀錄
語法:
Dim IsUse(1 To 38) As Boolean

Private Sub CodeNumberCombo_GotFocus(Index As Integer)

    CodeNumberCombo(Index).Clear
    For i = 1 To 38
        If IsUse(i) = False Then CodeNumberCombo(Index).AddItem CStr(i)
    Next
End Sub

'為了不讓使用者鍵入 (如此只能使用下拉式選擇)
Private Sub CodeNumberCombo_KeyUp(KeyCode As Integer, Shift As Integer)

    CodeNumberCombo.Text = ""
End Sub

此帖於 2008-04-27 04:37 PM 被 mini 編輯.
mini 目前離線  
送花文章: 2007, 收花文章: 7986 篇, 收花: 26788 次
回覆時引用此帖
向 mini 送花的會員:
rank (2008-04-28)
感謝您發表一篇好文章