Lỗi số liệu trong table

  • Thread starter BiDIT
  • Ngày gửi
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Khóa học Quản trị dòng tiền
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Có bác nào giúp em vụ này với không. Mấy hôm này toàn bị lỗi này. Có phải do nguyên nhân 2 user vào cùng sửa 1 record thì dẫn đến hiện tượng này không. Nếu như vậy thì có cách nào để một record thì chỉ có 1 người vào được thôi?
 
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Hình nhỏ quá không thấy. up hình trực tiếp lên web đi Bi.

Xem hộ mình với nhé. Đợt này gặp nhiều vấn đề quá cũng may có anh em Webketoan gỡ cho chứ không đầu vỡ tung mất.Thanks trước nhé.
 

Đính kèm

  • New Folder (4).rar
    137.8 KB · Lượt xem: 132
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Hôm nay mình tìm ra được nguyên nhân của lỗi này rồi nhưng không biết cách khắc phục nó như thế nào. Mình mô tả mong mọi người giúp đỡ hộ nhé: Khi User1 mở 1 record và update thông tin, đồng thời User2 cũng mở và update record này. Như vậy, xung đột xảy ra. Nếu user1 nhận được 1 thông báo có ghi lại thông tin thay đổi này không thì: nếu chọn "save record" sẽ bị lỗi như trên. Còn nếu "drop change" thì không sao cả nhưng nhưng gì vừa update lai mất đi.
Vậy có cách nào chỉ 1 user có thể change được thông tin không? Nếu user2 vào thì user2 sẽ cướp quyền change của record đó?
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Hôm nay mình tìm ra được nguyên nhân của lỗi này rồi nhưng không biết cách khắc phục nó như thế nào. Mình mô tả mong mọi người giúp đỡ hộ nhé: Khi User1 mở 1 record và update thông tin, đồng thời User2 cũng mở và update record này. Như vậy, xung đột xảy ra. Nếu user1 nhận được 1 thông báo có ghi lại thông tin thay đổi này không thì: nếu chọn "save record" sẽ bị lỗi như trên. Còn nếu "drop change" thì không sao cả nhưng nhưng gì vừa update lai mất đi.
Vậy có cách nào chỉ 1 user có thể change được thông tin không? Nếu user2 vào thì user2 sẽ cướp quyền change của record đó?

Theo mình thì bạn thêm 1 field: Edit (Y/N) vào table. Khi USer1 chỉnh sửa mẫu tin thì bạn gán Edit =True khi Save thì gán lại Edit=false, khi User2 muốn chỉnh sửa thì kiểm tra nếu Edit = false thì cho sửa và cũng gán Edit=true . . .
 
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Theo mình thì bạn thêm 1 field: Edit (Y/N) vào table. Khi USer1 chỉnh sửa mẫu tin thì bạn gán Edit =True khi Save thì gán lại Edit=false, khi User2 muốn chỉnh sửa thì kiểm tra nếu Edit = false thì cho sửa và cũng gán Edit=true . . .

Cũng là một giải pháp hay đấy. Nhưng có vẻ chưa được thuyết phục lắm. Dẫu sao cũng cám ơn bạn nhiều.
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Cũng là một giải pháp hay đấy. Nhưng có vẻ chưa được thuyết phục lắm. Dẫu sao cũng cám ơn bạn nhiều.

Bạn cũng không cần làm như trên. vì access có cơ chế tự động khóa mẫu tin. mình đã test thử rồi.
Nếu bạn dùng form để nhập dữ liệu, bạn để ý chổ Record selector sẽ có dấu cấm nhập khi record đó đang được sửa từ user khác (từ máy khác), bạn sẽ không gõ gì được vào textbox cả. Nếu nhập được sẽ có hình cây viết.
Bạn làm cách nào mà 2 user update 1 record cùng lúc vậy?
 
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Mình không thấy nút Record selector đâu cả?
Mình cũng không biết có chức năng nào để tắt quyển truy nhập khi 1 record đang được edit. Mình làm như bình thường thì thấy là 2 người có thể truy cập va cùng sửa 1 record cùng 1 lúc.
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Mình không thấy nút Record selector đâu cả?
Mình cũng không biết có chức năng nào để tắt quyển truy nhập khi 1 record đang được edit. Mình làm như bình thường thì thấy là 2 người có thể truy cập va cùng sửa 1 record cùng 1 lúc.

Bạn nhập liệu vào form hay trực tiếp vào table ?.
Nếu nhập thông qua form thì Record Selector là phần bìa bên trái của form đó.
Bạn thấy mẫu tin 1 bị cấm nhập, mẫu tin thứ 2 thì không.
http://www.mediafire.com/?sharekey=f5cf2628c9958d5c7432d3c9683f450ae04e75f6e8ebb871
 
Sửa lần cuối:
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Bạn nhập liệu vào form hay trực tiếp vào table ?.
Nếu nhập thông qua form thì Record Selector là phần bìa bên trái của form đó.
Bạn thấy mẫu tin 1 bị cấm nhập, mẫu tin thứ 2 thì không.
http://www.mediafire.com/?sharekey=f5cf2628c9958d5c7432d3c9683f450ae04e75f6e8ebb871

Giao diện nhập liệu của mình như dưới đây. quả thật không có record selector thật vì mình để trên head form.
http://www.mediafire.com/?sharekey=f037d4a5f7f942001f8e0fff488e27e0e04e75f6e8ebb871
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Giao diện nhập liệu của mình như dưới đây. quả thật không có record selector thật vì mình để trên head form.
http://www.mediafire.com/?sharekey=f037d4a5f7f942001f8e0fff488e27e0e04e75f6e8ebb871

Form nào cũng có Record selector
Mainform của bạn ở dạng Single và bạn đã đặt Record selectors=No nên không hiện ra (ở dạng single tắt đi thì nhìn form sẽ đẹp hơn), còn subform của bạn thì vẫn có đó.
Tuy nhiên có hay không có trên form không quan trọng, nó chỉ thể hiện trạng thái của mẫu tin đang hiện diện trên form mà thôi (hình cây viết là đang cập nhật, hình bảng cấm là record đó đang được edit bởi user khác sẽ không nhập gì vào được,. . )
Chương trình của bạn nhập liệu từ form vào trực tiếp table hay dùng code update vào table?
Bạn thử vào menu Tools\Option đánh dấu chọn
- Default record locking \ Edited record
- Using databases using record level-locking.
 
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Form nào cũng có Record selector

Chương trình của bạn nhập liệu từ form vào trực tiếp table hay dùng code update vào table?
Mình dùng cả hai kiểu. Nhaapj trực tiếp cũng dùng code cũng có. Khoong biết như thế có ảnh hưởng gì không bạn.
Bạn thử vào menu Tools\Option đánh dấu chọn
- Default record locking \ Edited record
- Using databases using record level-locking.

Mình thử rồi nhưng sao vẫn không được nhỉ? Phần mền của mình có 2 file: 1 file chứa các table dùng làm database và file còn lại chứa các query. khi mình mở cả 2 file khác nhau cùng edit 1 record trong cùng 1 database nhưng cả 2 đều edit như thường chứ không bị lock cái nào cả. Xem giúp mình với nhé.
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Mình thử rồi nhưng sao vẫn không được nhỉ? Phần mền của mình có 2 file: 1 file chứa các table dùng làm database và file còn lại chứa các query. khi mình mở cả 2 file khác nhau cùng edit 1 record trong cùng 1 database nhưng cả 2 đều edit như thường chứ không bị lock cái nào cả. Xem giúp mình với nhé.

Nếu có thể bạn đưa lên cho mọi người cùng tham khảo.
 
B

BiDIT

Trung cấp
16/5/09
87
1
8
Hanoi
Mình làm được rồi. Chỉ cần sửa trong Properties của Record locks của form thành Edited Record là được. Thanks đồng chí nhiều.
 
N

nguyenvinh69

Sơ cấp
15/8/09
1
0
1
56
HCM
Theo mình bạn không nên làm vậy. Vì như vậy ai sẽ chịu trách nhiệm về thông tin cập nhật đó?
Để giải quyết bài toán này,theo mình :
1- Bạn nên thêm 2 trường quản lý user và máy cập nhật và chỉ người tạo mới có quyền sửa.
2- Tạo các table tạm, khi sửa mình bốc dữ liệu cũ ra các table tạm này, sửa xong nếu người dùng click Save thì xóa dữ liệu cũ và cập nhật dữ liệu mới vào. Ai làm sau thì dữ liệu họ sẽ được cập nhật. Dĩ nhiên khi sửa phải kiểm tra User và khi cập nhật phải lưu user vào.
 

Xem nhiều