Đánh giá chủ đề:
  • 1 Votes - 2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Chặn ComboBox chọn trùng dữ liệu
#1
Chào các bạn.
Mình có làm 1 form để chấm công, gồm: Mã chấm công, Mã nhân viên, Ngày, Loại ngày công (chi tiết trong file đính kèm)
Trong đó Ngày và Loại ngày công mình dùng ComboBox để chọn. Dữ liệu chấm công của tất cả nhân viên lưu vào tblChamCongTemp (không có khóa chính).

Ví dụ:
Nhân viên A: chấm công ngày 1,2,3
Nhân viên B: chấm công ngày 1,2,3,4,5,6...

Yêu cầu:
Khi chọn ngày chấm công tiếp cho nhân viên A, nếu chọn các ngày đã chấm công (1 hoặc 2 hoặc 3) thì sẽ báo lỗi "Ngày này đã chọn chấm công rồi", còn chọn các ngày khác thì bình thường. Lưu ý là chỉ so sánh với các ngày hiện có trên Form của nhân viên đó, không so sánh với ngày đã có trong tblChamCongTemp.

Link file mdb: https://docs.google.com/file/d/0B7Y3jP6g...edit?pli=1

Các bạn giúp mình nhé!
Cảm ơn các bạn.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#2
Các bạn ơi! Giúp mình với!!!
Đang bí quá, bạn nào có hướng giải quyết, gợi ý dùm để mình làm thử.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#3
Bạn hãy đặt thủ tục sau vào sự kiện BeforeUpdate của comboBox
Mã PHP:
Private Sub cboNgay_BeforeUpdate(Cancel As Integer)
    If 
DCount("[MaCC]""[tblChamCongTemp]""MaCC='" Me.Parent.MaCC "' AND Ngay=" cboNgay) > 1 Then
        MsgBox 
"Da cham ngay cong nay roi"
        
Cancel True
    End 
If
End Sub 
Hàm Dcount sẽ đếm xem có bao nhiêu bản ghi trong bảng tạm của nhân viên này có ngày công vừa chọn, nếu kết quả lớn hơn 1 thì sẽ báo lỗi và hủy kích hoạt sự kiện Update của combo.
Me.Parent.MaCC có nghĩa là gọi đối tượng chứa tôi và điều khiển MACC trong đối tượng chứa tôi. Trong trường hợp này, đối tượng chứa tôi là Form chủ của SubForm. Parent nghĩa là "Cha"
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Noname , sorryikillyo
#4
(11-07-13, 01:27 PM)paulsteigel Đã viết: Bạn hãy đặt thủ tục sau vào sự kiện BeforeUpdate của comboBox
Mã PHP:
Private Sub cboNgay_BeforeUpdate(Cancel As Integer)
    If 
DCount("[MaCC]""[tblChamCongTemp]""MaCC='" Me.Parent.MaCC "' AND Ngay=" cboNgay) > 1 Then
        MsgBox 
"Da cham ngay cong nay roi"
        
Cancel True
    End 
If
End Sub 
Hàm Dcount sẽ đếm xem có bao nhiêu bản ghi trong bảng tạm của nhân viên này có ngày công vừa chọn, nếu kết quả lớn hơn 1 thì sẽ báo lỗi và hủy kích hoạt sự kiện Update của combo.

Cảm ơn bạn, để mình thử.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#5
Bạn ơi, mình đã thử, nhưng khi chọn trùng ngày, có ngày báo lỗi trùng, có ngày không báo lỗi gì cả. không biết tại sao nữa.

Mình có thắc mắc là:
1. Tại sao dùng MaCC để đếm mà không dùng MaNV ???
2. Me.Parent.MaCC ý nghĩa là sao?

Bạn giải đáp giúp mình với!
Cảm ơn.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#6
1/ File bạn gửi có nhiễm virut. Lưu ý quét virut và nén file trước khi tải lên trang chia sẻ
2/ Vì không tham khảo được cách bố trí file của bạn nên
2.1/ Bạn gửi lại file
2.2/ Thử thay như ý của bạn xem có lỗi nữa không

Mã:
If DCount("[Ngay]", "[tblChamCongTemp]", "MaNV='" & Me.MaNV & "' AND Ngay=" & cboNgay) > 1 Then

Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn sorryikillyo
#7
(11-07-13, 05:23 PM)Xuân Thanh Đã viết: 1/ File bạn gửi có nhiễm virut. Lưu ý quét virut và nén file trước khi tải lên trang chia sẻ
2/ Vì không tham khảo được cách bố trí file của bạn nên
2.1/ Bạn gửi lại file
2.2/ Thử thay như ý của bạn xem có lỗi nữa không

Mã:
If DCount("[Ngay]", "[tblChamCongTemp]", "MaNV='" & Me.MaNV & "' AND Ngay=" & cboNgay) > 1 Then

Thân mến

Xuân Thanh ơi!
1. Mình đã thử đoạn Code của bạn nhưng không có kết quả.
2. Mình xài Kaspersky Antivirus, và đã quét file không phát hiện có Virus.
3. Đã up lại file https://docs.google.com/file/d/0B7Y3jP6g...edit?pli=1
4. MÌnh mới tìm hiểu Access nên chưa hiểu cách kết hợp các điều kiện với nhau. Cụ thể là các dấu: nháy kép "" ; dấu nháy đơn '' ; dấu & ; dấu ngoặc đơn (). Cách sử dụng các dấu này như thế nào, trong trường hợp nào. Bạn có thể giải thích hay hướng dẫn mình dc không?

Bạn xem giúp mình nha, cảm ơn.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#8
Cảm ơn bạn paulsteigel đã giải thích cặn kẽ cho mình hiểu.

Mình đã làm theo đoạn Code của bạn, vẫn có kết quả thông báo khi chọn trùng ngày, nhưng gặp phải vấn đề như sau:
1.Trước khi mình chèn đoạn Code, đã chấm công cho nhân viên C0431 đến ngày 7.
2. Rồi mình chèn code vào, chấm công tiếp cho nhân viên này đến ngày 12, lưu lại, close file access.
3. Mở lại file, thử chấm công tiếp cho nhân viên này, chọn các ngày từ 1 --> 7 thì xuất hiện thông báo (đúng); còn chọn từ ngày 8--> 12 thì không xuất hiện thống báo (nếu đúng thì phải hiện thông báo vì các ngày từ 8-->12 đã chấm công rồi).
4. Mình up file có đoạn code của bạn https://docs.google.com/file/d/0B7Y3jP6g...edit?pli=1

Bạn xem lại giúp mình nha, cảm ơn.
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn
#9
Mình làm dc rồi, sử dụng đoạn Code của bạn paulsteigel nhưng sửa lại là >=1
Mã PHP:
If DCount("[MaCC]""[tblChamCongTemp]""MaCC='" Me.Parent.MaCC "' AND Ngay=" cboNgay) >= 1 Then 

Cảm ơn tất cả các bạn 007
Chữ ký của sorryikillyo Xin chào, mình là sorryikillyo, Tham gia http://thuthuataccess.com/forum từ ngày 27-02 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 39 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
  [Hỏi] Tổng hợp dữ liệu theo thời gian hoanghai902 1 141 21-10-16, 09:55 PM
Bài mới nhất: maidinhdan
  [Help] Áp dụng query lọc dữ liệu nhập vào form amazonvn82 8 1,355 05-10-16, 03:11 PM
Bài mới nhất: amazonvn82
  Click đúp chuột hiện form và cập nhật dữ liệu theo số phiếu Ranju 1 133 05-10-16, 11:02 AM
Bài mới nhất: lmthu

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ