Database access nhiều nguời dùng

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi duynv, 11 Tháng năm 2007.

3,249 lượt xem

  1. duynv

    duynv Thành viên sơ cấp

    Bài viết:
    5
    Đã được thích:
    0
    Nơi ở:
    dn
    csdl access gồm 1 form ghi thông tin số hóa đơn phát sinh(số hóa đơn là khóa và tự động tăng khi nguời dùng ấn nút thêm mới), nếu đưa file .mdb lên mạng và khi 2 nguời dùng cùng thêm mới hóa đơn thì báo lỗi số hóa đơn là duy nhất. tôi muốn hỏi các bạn khi chạy trên môi truờng mạng phải cấu hình như thế nào hoặc phải làm thế nào để tránh tình trạng xung đột như trên: mình phải xử lí như thế nào khi ấn nút thêm mới thì số hóa đơn sẽ được ghi vào table luôn(nếu người thứ 1 vào trước có số hóa đơn là 1 thì người thứ 2 ấn nút thêm mới thì sẽ có số hóa đon là 2). Cảm ơn
     
    #1
  2. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Phương án :

    - ID tự động tăng. (rất nhiều người dùng Code thay cho ID là ko ổn lắm. ID là do CSDL xử lý. Code là đại diện cho bản ghi. Code có thể là Unique Index, còn ID sẽ là Primary key)

    Hoặc:

    - Thực hiện ID = NextID() trước khi thực hiện Save

    Còn nhiều phương án khác nữa.


    Hope that helps!
     
    #2
  3. duynv

    duynv Thành viên sơ cấp

    Bài viết:
    5
    Đã được thích:
    0
    Nơi ở:
    dn
    Anh hai2hai có thể giúp tôi rõ hơn được ko? Tôi đã cố gắng xử lí nhưng vẫn chưa được. Cảm ơn anh truớc nhé
     
    #3
  4. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Bạn chọn trường ID là kiểu AutoNumber

    Giả sử có 1 chứng từ có phần header như thế này:

    ID (PK - AutoNumber)
    TransNo (Unique Index)
    TransRef
    TransDate
    .....

    Hoặc bảng Inventory_Item bạn làm thế này:

    ID (PK - AutoNumber)
    ItemCode (Unique Index)
    ItemName
    ItemCategoryID (FK)
    ....

    Tất cả các bảng quan hệ với nhau thông qua trường ID chứ không nên thông qua trường Code. Trong MS Access, ID nên để là AutoNumber và để hệ thống tự quản lý. Mình ko cần care đến trường đó làm gì. Dĩ nhiên, khi thao tác với bản ghi thì vẫn phải dùng tới trường đó để thao tác (edit, delete...)

    Còn bạn muốn cái TransNo (Số hóa đơn tự động tăng) thì bạn viết cái hàm NextText() hoặc IncText() gì đó. Mình ko thể hướng dẫn tiếp cụ thể viết cái hàm đó như thế nào bạn ạ (ở trên forum này cũng có bài liên quan rồi đó)
     
    Last edited: 14 Tháng năm 2007
    #4

Chia sẻ trang này