Trong Validation Ruler của Table hoặc Form có cách nào để chặn không cho ghi dữ liệu trùng không các bạn.
Vì mình có 1 Form nhập thông tin khách hàng,mình không muốn số Mobile trùng nhau ,nên mình muốn đặt Validation Ruler không cho nhập trùng có được không,để nếu mình gõ sai nó báo luôn.Các bạn đừng bảo mình thiết lập khóa chính hay Index (No duplicates) nhé ,vì như thế phải nhập hết thông tin của 1 bản ghi thì nó mới báo trùng,như thế mất công lắm.
Đáp:
Giả sử bạn có 1 table là Customers(maKH,phone,...), 1 form tên là Customers
Trong form nhập thông tin khách hàng, textbox phone Bạn đặt các thuộc tính như sau:
ValidationRule property:
DLookUp("[Phone]","Customer","[Phone] = '" & [Forms]![Customer]![Phone] & "' and [CusID] <>'" & [Forms]![Customer]![CusID] & "'") Is Null
ValidationText property : "Số phone này đã được nhập , vui lòng xem lại"
Demo
____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.com/forum
Có sửa 1 chút, nếu thấy trùng số phone nhưng trùng thêm mã khách hàng thì vẫn cho thêm, như vậy tránh được trường hợp không cho sửa.
Trả lờiXóa[quote]Giả sử bạn có 1 table là Customers(maKH,phone,...), 1 form tên là Customers[/quote]
Trả lờiXóaVí dụ gì mà hiểm hóc thế?
để 2 tên khác nhau người ta còn biết đường mà mò chứ !
Lỗi loạn lên rồi :@
Có chương trình demo kèm theo đấy bạn! Sao không down về xem thử mà than vãn! Giống như chưa làm thì ai cũng bảo khó, nhưng làm rồi thấy dễ ợt à!
Trả lờiXóa'Các ban có the bỏ bớt dòng mã phía trên
Trả lờiXóa'Cach này kiểm tra mã bị trùng rất hiệu quả
Private Sub cmdLuuthongtin_Click()
'On Error GoTo Err_cmdLuuthongtin_Click
Dim Dulieu As Database
Dim mautin As Recordset
Set Dulieu = CurrentDb()
Set mautin = Dulieu.OpenRecordset("THONGTIN", dbOpenTable)
Do While Not mautin.EOF
If mautin!MA_KH = Me.MA_KH Then
If mautin!TEN_KH = Me.TEN_KH Then
mautin.Edit
mautin.Update
Exit Do
Exit Sub
DoCmd.Close
Else
MsgBox "Ma khach hang da bi trung", vbInformation, "Canh bao"
Me.MA_KH.SetFocus
Me.MA_KH = ""
Exit Sub
End If
Else
mautin.Edit
mautin.Update
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.Close
Exit Sub
End If
Loop
mautin.Close
Dulieu.Close
DoCmd.Close
'Exit_cmdLuuthongtin_Click:
' Exit Sub
'Err_cmdLuuthongtin_Click:
'MsgBox Err.Description
'Resume Exit_cmdLuuthongtin_Click
End Sub
cản ơn các bạn tôi đã làm được, nhưng có một vấn đề là tôi muốn khi nhập số phone trùng và tên trùng luôn thì mới báo lỗi có được không có nghĩa là khi hai điều kiện Phone vàTen mà đã được nhập rồi thì mới báo trùng, mong sự hồi âm của các bạn
Trả lờiXóa