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 電腦與網際網路 ➔ 程式設計
'不知道是不是你要的,把表單上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⤋