truongtrungviet > 13-03-20, 11:27 PM
Trích dẫn:https://www.mediafire.com/file/t5dq8fhmr...accdb/file
Xuân Thanh > 14-03-20, 07:16 AM
(13-03-20, 11:27 PM)truongtrungviet Đã viết: Mình có 1 table Sảnh và frmSanh,
Trong table Sảnh có các dữ liệu như sau: Sảnh, Ngày tổ chức và buổi.
Mình muốn thông báo dữ liệu đã có khi nhân viên nhập vào frmSanh các dữ liệu như: Sảnh, Ngày tổ chức và buổi....trùng với dữ liệu tableSanh.
Xin cảm ơn các anh chị giúp đỡ.
Đây là file của mình.
Trích dẫn:https://www.mediafire.com/file/t5dq8fhmr...accdb/file
ongke0711 > 14-03-20, 09:21 AM
(13-03-20, 11:27 PM)truongtrungviet Đã viết: Mình có 1 table Sảnh và frmSanh,
Trong table Sảnh có các dữ liệu như sau: Sảnh, Ngày tổ chức và buổi.
Mình muốn thông báo dữ liệu đã có khi nhân viên nhập vào frmSanh các dữ liệu như: Sảnh, Ngày tổ chức và buổi....trùng với dữ liệu tableSanh.
Dim rs As DAO.Recordset
Dim strSQL as String
Dim strCriteria As String
strCriteria = " Sanh ='" & Trim(Me.txtSanh) & "'AND Ngay =#" & Me.txtNgay & "# AND Buoi ='" & Trim(Me.txtBuoi) & "' AND (TGTu <= " & Me.txtTuGio & " AND TGDen >=" & Me.txtTuGio & ") OR (TGTu <= " & Me.txtDenGio & " AND TGDen >=" & Me.txtDenGio
strSQL = "SELECT Count(*) As SoDongTrung FROM TblSanh WHERE " & strCriteria
Set rs = CurrentDB.OpenRecordset (strSQL, dbOpenSnapShot)
If rs.EOF AND rs.BOF Then
Msgbox "Còn chỗ trống."
Else
Msgbox "Trùng " & rs!SoDongTrung & " ngày", vbInfomation, "Thông báo"
End If
truongtrungviet > 15-03-20, 10:48 AM
(14-03-20, 09:21 AM)ongke0711 Đã viết:(13-03-20, 11:27 PM)truongtrungviet Đã viết: Mình có 1 table Sảnh và frmSanh,
Trong table Sảnh có các dữ liệu như sau: Sảnh, Ngày tổ chức và buổi.
Mình muốn thông báo dữ liệu đã có khi nhân viên nhập vào frmSanh các dữ liệu như: Sảnh, Ngày tổ chức và buổi....trùng với dữ liệu tableSanh.
Bạn thiết kế cái cột lưu thời [Từ lúc - Đến lúc] kiểu này là tự làm khó mình rồi. Muốn so sánh nó bạn phải dùng code tách ra làm 2 phần từ, đến rồi chuyển thành dạng Date, rồi mới so sánh được. Chưa kể gõ vào textbox [thời gian từ lúc] có thể dư khoảng trắng, rồi lại thêm code xoá khoảng trắng -> tốn code.
- Nên tách ra làm 2 cột dạng Date - format kiểu "hh:nn:ss". Vd: [[TGTu], [TGDen]
- Sau khi nhập liệu sẽ dùng câu lệnh SQL để lọc ra record có trùng dữ liệu không, nếu RecordCounr =1 => Trùng và ngược lại.
- Câu lệnh SQL: ví du
Mã PHP:Dim rs As DAO.Recordset
Dim strSQL as String
Dim strCriteria As String
strCriteria = " Sanh ='" & Trim(Me.txtSanh) & "'AND Ngay =#" & Me.txtNgay & "# AND Buoi ='" & Trim(Me.txtBuoi) & "' AND (TGTu <= " & Me.txtTuGio & " AND TGDen >=" & Me.txtTuGio & ") OR (TGTu <= " & Me.txtDenGio & " AND TGDen >=" & Me.txtDenGio
strSQL = "SELECT Count(*) As SoDongTrung FROM TblSanh WHERE " & strCriteria
Set rs = CurrentDB.OpenRecordset (strSQL, dbOpenSnapShot)
If rs.EOF AND rs.BOF Then
Msgbox "Còn chỗ trống."
Else
Msgbox "Trùng " & rs!SoDongTrung & " ngày", vbInfomation, "Thông báo"
End If
truongtrungviet > 15-03-20, 10:51 AM
(14-03-20, 07:16 AM)Xuân Thanh Đã viết:(13-03-20, 11:27 PM)truongtrungviet Đã viết: Mình có 1 table Sảnh và frmSanh,
Trong table Sảnh có các dữ liệu như sau: Sảnh, Ngày tổ chức và buổi.
Mình muốn thông báo dữ liệu đã có khi nhân viên nhập vào frmSanh các dữ liệu như: Sảnh, Ngày tổ chức và buổi....trùng với dữ liệu tableSanh.
Xin cảm ơn các anh chị giúp đỡ.
Đây là file của mình.
Trích dẫn:https://www.mediafire.com/file/t5dq8fhmr...accdb/file
Tôi nghĩ chẳng lẽ cái này lại làm khó truongtrungviet?
Đôi lời góp ý :
1/ Có cần MaSanh không? Vì TenSanh là A,B... có thể thay thế được rồi. Trong file tôi thấy cùng một sảnh A nhưng lại có nhiều mã sảnh
2/ Có cần làm form dạng main-sub không? Vì main-sub quan hệ 1-1 nên chỉ cần hoặc main hoặc sub là đủ
3/ Khi thêm mới, nhấn nút Lưu thì xét toàn bộ các record trong table nếu có dữ liệu trùng với dữ liệu đã lưu thì ra thông báo để sửa, nếu không thì cho addnew. Bạn thử viết lệnh cho nút Lưu xem sao. Có gì khó khăn sẽ trao đổi tiếp
4/ Cố gắng chuyển macro thành các sub VBA đề phòng trường hợp khác Version sẽ không mở được
Thân mến