mrsiro > 09-10-18, 07:17 PM
tranthanhan1962 > 09-10-18, 08:10 PM
lehongduc > 10-10-18, 11:13 AM
lehongduc > 10-10-18, 11:17 AM
(09-10-18, 08:10 PM)tranthanhan1962 Đã viết: Khi CSDL hoạt động mạng, điều bạn nói không thể xảy ra nếu trường hợp bạn sử dụng form liên kết recordsource. lúc này access sẽ báo lỗi thậm chí chương trình sẽ bị đơ và bạn chỉ có thể tắt bằng task managerChào các Bạn,
Trường hợp sử dụng form unbound, ai thực hiện trước sẽ được hưởng lợi trước, người thực hiện sau sẽ ôm lỗi (mèo đen ăn vụng, mèo trắng bị đòn). Chẳng có sách nào chỉ cho bạn cách xử lý toàn vẹn dữ liệu cả.
Vì vậy không ai khuyến khích sử dụng form unbound để thiết kế form chạy mạng, vì form unbound thực sự là một ngôi nhà hoang rất khó quản lý.
Nếu bạn sử dụng form liên kết, bạn có thể khóa dữ liệu ở các máy khác khi bạn đang trên form làm việc trước những người đó (bạn có thể thiết lập khóa record hoặc khóa cả table tùy ý) lúc này các máy khác có quyền xem mà không thể thực hiện các thao tác khác như nhập, sửa, xóa. Thậm chí nếu bạn là acmin bạn có thể dành lại quyền quản lý và khóa các máy khác dù họ đang làm việc trước bạn (việc này chắc chắn không thể làm được với form unbound)
ongke0711 > 10-10-18, 11:58 AM
NguyenDungAnh > 11-10-18, 08:50 AM
ongke0711 > 11-10-18, 10:16 AM
(11-10-18, 08:50 AM)NguyenDungAnh Đã viết: Cái vụ error 3200 có thể áp dụng vào mục không cho xóa hóa đơn nhập khi đã có hóa đơn xuất mặt hàng đó bác nhỉ
Private Sub cmdXoa_Click()
On Error GoTo Err_cmdXoa_Click
If IsNull(Me.txtID) Then
Beep
ElseIf msgBoxUni("B" & ChrW(7841) & "n có ch" & ChrW(7855) & "c ch" & ChrW(7855) & "n mu" & ChrW(7889) & "n xóa mã hàng này?", vbYesNo + vbQuestion, "Thông báo") = vbYes Then
If XoaVPP(Me.txtID) Then
msgBoxUni ChrW(272) & "ã xóa xong!", vbOKOnly + vbInformation, "Thông báo"
Me.lstDMSP.Requery
DoCmd.Requery
Else
msgBoxUni "Không th" & ChrW(7875) & " xóa mã hàng này vì " & ChrW(273) & "ã có phát sinh giao d" & ChrW(7883) & "ch!", vbOKOnly + vbCritical, "Thông báo"
End If
End If
SetFormState False
Exit Sub
Exit_cmdXoa_Click:
Exit Sub
Err_cmdXoa_Click:
MsgBox Err.Description
Resume Exit_cmdXoa_Click
End Sub
Function XoaVPP(MaSP As Long) As Boolean
Dim strSQL As String
Dim rs As Recordset
On Error GoTo ErrorHandler
strSQL = "SELECT count(*) as Existed FROM tblPhieuNhapChiTiet WHERE [MaSP]=" & MaSP
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs!Existed = 0 Then
strSQL = "DELETE tblDMSP.* FROM tblDMSP WHERE [ID]=" & MaSP
CurrentDb.Execute strSQL, dbFailOnError
XoaVPP = True
Else
XoaVPP = False
End If
rs.Close
Set rs = Nothing
Exit Function
ErrorHandler:
XoaVPP = False
rs.Close
Set rs = Nothing
End Function
mrsiro > 11-10-18, 05:02 PM
ongke0711 > 11-10-18, 05:52 PM
mrsiro > 11-10-18, 06:14 PM
Trích dẫn: Nếu khi tạo quan hệ bạn chọn mục 1, 2 (Enforce Referential Intergrity, Cascade Update Related Record) thì khi bạn xoá record bên Table tham chiếu (table phòng ban của bạn) thì các table khác có mã liên quan sẽ tự động đổi thành Null.