English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

1問題:
1)在連續表單作業:
2)表單有5個數字資料型態的欄位.
3)當新增時.如何檢測資料是否有重複.
2答案:
Private Sub Form_BeforeUpdate(Cancel As Integer)
?__?
End Sub
3Help?

2006-09-25 06:07:52 · 3 個解答 · 發問者 大樹鄉 4 in 電腦與網際網路 程式設計

3 個解答

'不知道是不是你要的,把表單上5個欄位名稱(不是控制項資料來源哦)改成Text1~Text5Private Sub Form_BeforeUpdate(Cancel As Integer)    Dim I As Integer, J As Integer, Tmp As Single        '檢查5個欄位資料是否有重複(至於欄位是否可為空值在此就不再做判斷,由你自己設定)    For I = 1 To 5        For J = 1 To 5            If I <> J Then               If Val(Me("Text" & I)) = Val(Me("Text" & J)) Then                  MsgBox "第" & I & "欄與第" & J & "欄資料重複!!"                  Me("Text" & J).SetFocus                  Cancel = True: Exit Sub               End If            End If        Next    Next    '排序    For I = 1 To 4        For J = I To 5            If Val(Me("Text" & I)) > Val(Me("Text" & J)) Then               Tmp = Val(Me("Text" & I))               Me("Text" & I) = Val(Me("Text" & J))               Me("Text" & J) = Tmp            End If        Next    NextEnd Sub

2006-09-25 18:22:45 補充:
您只須在資料表設計時,在每個欄位的[必須有資料]這個屬性設為"是"
[欄位大小]設成"整數"即可.

2006-09-25 11:22:16 · answer #1 · answered by W.J.S. 7 · 0 0

阿戊:好!
1:這是在表單新增時對本筆資料欄位之間資料的要求.
2:第二筆的資料.可以和第一筆資料重複.所以無法使用索引設定.
3:使用查詢的方式我會嘗試依你的建議去做.
4:還是很希望能在BEFORUPDATE下執行.
5:有辦法做:將欄位數值自動按照欄位順序由小排到大??

2006-09-25 07:50:21 · answer #2 · answered by 大樹鄉 4 · 0 0

哪一種 重複?
欄位間的值重複 還是 已經存在的資料錄?

前者就是一個個比較了.

後者的話...
把欄位設索引(不可重複)不就好了.
再不然就是下查詢,如果不等於eof就是有重複了.

2006-09-25 12:10:35 補充:
你兩種狀況都有提到...還是分不出你說的是哪一種狀況ㄝ...@@
排序的方法你前面不是有問過了,排完之後再代回欄位裏update就好啦~

2006-09-25 07:33:48 · answer #3 · answered by ? 7 · 0 0

fedest.com, questions and answers