• Xin trợ giúp cảnh báo trùng dữ liệu
  • Xin trợ giúp cảnh báo trùng dữ liệu

    truongtrungviet > 13-03-20, 11:27 PM

    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
  • RE: Xin trợ giúp cảnh báo trùng dữ liệu

    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

    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
  • RE: Xin trợ giúp cảnh báo trùng dữ liệu

    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.

    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 (strSQLdbOpenSnapShot)

    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 
  • RE: Xin trợ giúp cảnh báo trùng dữ liệu

    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 (strSQLdbOpenSnapShot)

    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 

    3 cột: Sảnh, Ngày tổ chức, và Buổi thôi bạn, [Từ lúc - Đến lúc] giống ghi chú thôi..
  • RE: Xin trợ giúp cảnh báo trùng dữ liệu

    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

    Bây giờ nó có tuổi rồi nên lâu lâu nó ngu 1 tý anh, Thank anh nhắc nhở.