Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Đảm bảo tính toàn vẹn của dữ liệu
#11
(10-10-18, 11:17 AM)lehongduc Đã viết: Chào các Bạn,
Bạn đã viết:
"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ý."
Tôi hết sức bối rối khi đọc được nhận định này. Bạn có thể nói rõ hơn được không?
Tôi không cho rằng unbound form là không cần thiết, vì nếu như vậy thì microsoft chẳng đưa nó vào access để làm gì. Nhưng rõ rằng với một dữ liệu liên kết, khi sử dụng unbund form để giải quyết dữ liệu lưu trữ sẽ gây ra rất nhiều phiền phức, ai tạo được luồng dữ liệu trước đến csdl máy chủ thì lệnh người đó sẽ được thực thi trước. Trường hợp  nhiều lệnh truyền một lúc thì sẽ bị lỗi ngay. Bound form thì không như vậy, nó sẽ tranh thủ khóa dữ liệu của người khác trước khi làm việc. Tôi đã từng gặp trường hợp cả hai user đều bị khóa. có lẽ do cả hai đều có quyền tương đương nên khóa lẫn nhau. Cuối cùng một user phải nhường cho user kia là việc trước. Trường hợp này cũng không gặp nhiều. Nhưng cũng có thể lý giải được "chẳng thà không làm việc còn hơn gây ra lỗi". Có lẽ tôi cũng hơi cục bộ khi nói như thế, nhưng rõ ràng micorsoft cũng ít quan tâm đến oubound form trong các tài liệu access. Bản thân access đưa trực tiếp record source vào form cũng thể hiện được cách xử lý không giống VB chính thống đồng thời cũng đưa ra nhiều bộ code để hỗ trợ xử lý của việc này.
"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ý." Thực ra câu này cũng chẳng phải của tôi mà tôi đọc được đâu đó trên một forum về access. Thực tế trong quá trình làm việc với access tôi cũng thấy việc ép buột uonboud form làm việc theo một quy trình nào đó luôn luôn khó hơn bound form.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#12
(11-10-18, 06:14 PM)mrsiro Đã viết: Nếu mình không nhầm thì là ý này

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. 

Với trường hợp này thì khi A ấn lưu record vào table nhanvien, trường maphongban là null hay bật lên lỗi không cho lưu luôn.

Nếu cho lưu với trường maphongban là null thì sẽ có vấn đề xảy ra nếu dùng câu select mà có inner join giữa table nhanvien và phongban, kết quả trả về sẽ ko có cái nhân viên có trường maphongban là null.

Ở đây mình muốn bắt lỗi khi không tồn tại giá trị đó ở bảng khóa chính thì không cho lưu giá trị đó vào bảng khóa ngoại luôn.

Vậy thì bạn bắt lỗi của Form, khi Form lưu mà cái mã phòng ban đó không tồn tại nó sẽ báo lỗi vể Relationship, khi đó bạn sẽ cho hiện form để bổ sung mã phòng ban hoặc thoát lỗi, nhập liệu mã phong ban lại.
Ví dụ:

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Dim intAnswer As Integer
    If DataErr = 3201 Then  'Referential Integrity Error
        intAnswer = MsgBox("Phòng ban không tồn tại... Bạn có muốn thêm mới vào bây giờ không?", vbYesNo)
        If intAnswer = vbYes Then
            DoCmd.OpenForm "frmPhongBan", , , , acAdd, acDialog
        End If
    End If
    Response = acDataErrContinue  '-> phải có dòng này để thoát lỗi, tiếp tục sửa lại dữ liệu trên Form
End Sub
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn NguyenDungAnh


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Lỗi khi không chọn dữ liệu khi Save As 'Invalid procedure call or argument.' doandinhtam 2 173 02-09-18, 09:48 AM
Bài mới nhất: doandinhtam
  Hướng Dẫn Hỏi cách tạo code phục hồi dữ liệu trong table sau khi backup doandinhtam 31 1,102 29-08-18, 03:54 PM
Bài mới nhất: doandinhtam
  [Hỏi] Cách tổng hợp số liệu từ nhiều máy vào 1 máy vuthaiha90 3 1,185 25-07-17, 02:45 PM
Bài mới nhất: maidinhdan
  [Lỗi] Lỗi thập phân trong tính toán access toidjtjmtoi 3 960 13-05-17, 12:13 PM
Bài mới nhất: cpucloi
  Code Lưu dữ liệu vulhu06 7 1,321 02-03-17, 09:07 PM
Bài mới nhất: ongke0711

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line