Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Về check box tự động
#1
Em chào các bác. Các bác giúp e một chút.
E có hai table [maxuat] gồm các cột: mã xuất, ngày xuất, đã trả toàn bộ (dạng yes/no), đã trả một phần (dạng yes/no) và table [hvxuat] gồm các cột: mã xuất, tên hv, số lượng, đã trả (dạng yes/no).
Ví dụ ở table [maxuat]:
Mã xuất     ngày xuất     đã trả toàn bộ     đã trả một phần
X1             22/5/2016
X2             1/6/2016
Còn table [hvxuat] có các dữ liệu:
Mã xuất    tên hv    sl     đã trả
X1           súng       1
X1           tên         2
X1           đạn         1
X2            đạn        1
X2            súng      1
mã xuất của hai table e đã tạo relationship với nhau
Nếu e tick vào “đã trả” của một hv của mã xuất là x1 chẳng hạn thì tại table maxuat sẽ tự động tick vào ô “đã trả một phần” của mã x1. Còn nếu e tick vào “đã trả” của tất cả các hv của mã x1 thì tại table maxuat sẽ tự động tick vào ô “đã trả toàn bộ” của mã x1 đó. Mong các bác giúp đỡ. Thanks các bác nhiều
Chữ ký của nam8384 nam8384,gia nhập Thủ Thuật Access từ 17-03 -16.
Reply
Những người đã cảm ơn
#2
1. Table [maxuat] của bạn chỉ cần dùng 1 trường [HienTrangTra] dạng Yes/No để thể hiện tình trạng trả là được rồi. Yes: Đã trả toàn bộ; No: Chưa trả hoặc đã trả 1 phần.
- Bạn cũng có thể thiết kế field [HienTrangTra] dạng Number với Dislay control dạng Combobox. Row source type của combobox này là Value list. Vd:1;"Đã trả toàn bộ";2;"Đã trả 1 phần";3;"Chưa trả". Khi cập nhật chỉ cần cập nhật số 1 hoặc 2, 3 là được rồi.
2. Tôi hướng dẫn theo cách của bạn là có trường [HienTrangTra] dạng Yes/No:
- Bạn có thể dùng SELECT query hoặc DCount để tìm trong table [hvxuat] xem có [maxuat] nào mà [HienTrangTra]=No, nếu không tìm thấ thì update table [maxuat] là "Chưa trả hoăc đã trả 1 phần" và ngược lại.
- Tạo 1 Update Query như sau:

Cách 1: Dùng subQuery
------------------------------------------
Mã PHP:
UPDATE maxuat SET maxuat.HienTranTra Yes
WHERE 
(SELECT Count(hvxuat.maxuat)
FROM hvxuat
WHERE hvxuat
.HienTrangTra No AND [maxuat]="X1") = AND [maxuat]="X1"

------------------------------------------
- Ở ví dụ này tôi lấy [maxuat] là X1, bạn tự thay tham số này bằng tham số từ Form của bạn.

Cách 2:
--------------------------
Mã PHP:
UPDATE maxuat SET maxuat.HienTrangTra Yes

WHERE 
[maxuat]="X1" AND Dcount("maxuat","hvxuat","[HienTrangTra] = No") = 0
-------------------------
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 nam8384
#3
(06-06-16, 09:17 PM)ongke0711 Đã viết: 1. Table [maxuat] của bạn chỉ cần dùng 1 trường [HienTrangTra] dạng Yes/No để thể hiện tình trạng trả là được rồi. Yes: Đã trả toàn bộ; No: Chưa trả hoặc đã trả 1 phần.
- Bạn cũng có thể thiết kế field [HienTrangTra] dạng Number với Dislay control dạng Combobox. Row source type của combobox này là Value list. Vd:1;"Đã trả toàn bộ";2;"Đã trả 1 phần";3;"Chưa trả". Khi cập nhật chỉ cần cập nhật số 1 hoặc 2, 3 là được rồi.
2. Tôi hướng dẫn theo cách của bạn là có trường [HienTrangTra] dạng Yes/No:
- Bạn có thể dùng SELECT query hoặc DCount để tìm trong table [hvxuat] xem có [maxuat] nào mà [HienTrangTra]=No, nếu không tìm thấ thì update table [maxuat] là "Chưa trả hoăc đã trả 1 phần" và ngược lại.
- Tạo 1 Update Query như sau:

Cách 1: Dùng subQuery
------------------------------------------
Mã PHP:
UPDATE maxuat SET maxuat.HienTranTra Yes
WHERE 
(SELECT Count(hvxuat.maxuat)
FROM hvxuat
WHERE hvxuat
.HienTrangTra No AND [maxuat]="X1") = AND [maxuat]="X1"

------------------------------------------
- Ở ví dụ này tôi lấy [maxuat] là X1, bạn tự thay tham số này bằng tham số từ Form của bạn.

Cách 2:
--------------------------
Mã PHP:
UPDATE maxuat SET maxuat.HienTrangTra Yes

WHERE 
[maxuat]="X1" AND Dcount("maxuat","hvxuat","[HienTrangTra] = No") = 0
-------------------------
Em cảm ơn bác nhiều. Gần như đúng yêu cầu của em. Có điều nếu mà [maxuat]= x1 thì có tác dụng với biên bản xuất mã x1 nhưng em còn nhiều biên bản với các mã khác như: x2, x3… Nếu là mã khác thì e lại phải sửa lại code theo mã xuất hả bác. Có cách nào để [maxuat]= tự động nhận xem hv nào check vào đã trả thuộc mã nào thì mã đó ở table [maxuat] sẽ tự động check theo mã đó không?
Chữ ký của nam8384 nam8384,gia nhập Thủ Thuật Access từ 17-03 -16.
Reply
Những người đã cảm ơn
#4
Thay "X1" bằng giá trị textbox nào đó trên form của bạn chẳng hạn
VD: WHERE [maxuat] like Forms!tenform!tentextbox AND Dcount("maxuat","hvxuat","[HienTrangTra] = No") = 0
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan
#5
(07-06-16, 05:36 PM)cpucloi Đã viết: Thay "X1" bằng giá trị textbox nào đó trên form của bạn chẳng hạn
VD: WHERE [maxuat] like Forms!tenform!tentextbox AND Dcount("maxuat","hvxuat","[HienTrangTra] = No") = 0
Chuẩn quá, e cảm ơn bác nhiều
Chữ ký của nam8384 nam8384,gia nhập Thủ Thuật Access từ 17-03 -16.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Sad [Help] Hỏi cách đưa kết quả check box từ table vào form khác toidjtjmtoi 2 148 09-07-16, 09:04 AM
Bài mới nhất: cpucloi
Exclamation [Help] Check box giá trị hiệu lực Tran Van Giac 2 180 26-03-16, 02:51 PM
Bài mới nhất: cpucloi
Question [Lỗi] tự động đóng chương trình ? hugox03 7 666 29-08-14, 09:40 AM
Bài mới nhất: lamvankhanh
  Cho hỏi về dấu check box trong form ! daiphong1979 2 1,605 17-04-12, 12:44 PM
Bài mới nhất: Xuân Thanh
  Giúp thiết kế Check Box chauho 0 614 09-07-11, 11:03 AM
Bài mới nhất: chauho

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ơ