Đánh giá chủ đề:
  • 2 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Khi bấm nút GHI thì sẽ không bao giờ sửa được.
#11
(25-09-13, 01:34 PM)danhxetnghiem Đã viết: xin cảm ơn.

Để linh hoạt hơn, bạn viết một thủ tục để khóa các control nào cần khóa và gọi thủ tục này
VD:
Mã:
Private Sub Set_lockCtrl(lCtrl As Boolean)
    Me.txtTEN.Locked = lCtrl
    Me.txtNAMSINH.Locked = lCtrl
    Me.txtDIACHI.Locked = lCtrl
    Me.subKetQua.Enabled = Not lCtrl
End Sub

Mã:
Private Sub cmdLUU_Click()
     Set_lockCtrl True    
End Sub
Chữ ký của MTNQ Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem
#12
Đây là file Demo, mình đã thiết kế thêm một Subform, một list box và một option group với 2 nút nhấn:
- Khi nhấn nút "Chưa trả KQ" thì trên form và list chỉ hiển thị danh sách các hồ sơ chưa trả KQ
+ lúc này nút "Trả KQ" sẽ sáng và khi được nhấn thì lập tức toàn bộ hồ sơ sẽ được chuyển sang DS đã trả KQ
+ sau khi bấm Lưu các control sẽ bị khóa, phải bấm "Sửa" (ko cần nhập pass) mới thay đổi được

- Khi nút "Đã trả KQ" được nhấn thì trên form và list chỉ hiển thị danh sách các hồ sơ đã trả KQ, nút Unlock sẽ sáng , các control còn lại đều bị khóa - tất cả các nút đều bị mờ ( ngoại trừ option group và list box)
+ Nút Unlock dc nhấn sẽ hỏi pass, nếu nhập đúng pass (pass là matkhau) thì hồ sơ sẽ dc chuyển sang DS chưa trả KQ và lúc này phải bấm "Sửa" để sửa dữ liệu
......

Bạn xem thử nhé:

File Download Demo Lock Record2 (380KB)

Hình:

[Hình: 939153169_1916795252_574_574.jpg]
Chữ ký của MTNQ Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem
#13
(27-09-13, 01:21 AM)MatTroiNguQuen Đã viết: Đây là file Demo, mình đã thiết kế thêm một Subform, một list box và một option group với 2 nút nhấn:
- Khi nhấn nút "Chưa trả KQ" thì trên form và list chỉ hiển thị danh sách các hồ sơ chưa trả KQ
+ lúc này nút "Trả KQ" sẽ sáng và khi được nhấn thì lập tức toàn bộ hồ sơ sẽ được chuyển sang DS đã trả KQ
+ sau khi bấm Lưu các control sẽ bị khóa, phải bấm "Sửa" (ko cần nhập pass) mới thay đổi được

- Khi nút "Đã trả KQ" được nhấn thì trên form và list chỉ hiển thị danh sách các hồ sơ đã trả KQ, nút Unlock sẽ sáng , các control còn lại đều bị khóa - tất cả các nút đều bị mờ ( ngoại trừ option group và list box)
+ Nút Unlock dc nhấn sẽ hỏi pass, nếu nhập đúng pass (pass là matkhau) thì hồ sơ sẽ dc chuyển sang DS chưa trả KQ và lúc này phải bấm "Sửa" để sửa dữ liệu
......

Bạn xem thử nhé:

File Download Demo Lock Record2 (380KB)

Hình:

[Hình: 939153169_1916795252_574_574.jpg]

Mình tải file Demon Lock Record2 về rồi, nó rất hay, nhưng ý của mình là: khi bấm ghi là tên và subform cũng như list box không sửa được, còn địa chỉ thì cho sửa thì phải làm sao? từ ví dụ demo của bạn mình lùng sục hoài mà cũng không có lối thoát.027
Chữ ký của danhxetnghiem Đừng bao giờ so sánh đoạn đầu của bạn với đoạn giữa của người khác
Reply
Những người đã cảm ơn
#14
bạn điều chỉnh mã như sau: bạn tìm đoạn code Me.txtDIACHI.Locked = lCtrl
Private Sub Set_lockAll(la As Boolean)
Me.txtTEN.Locked = la
Me.txtNAMSINH.Locked = la
Me.txtDIACHI.Locked = lCtrl
Me.cmdTHEM.Enabled = Not la
Me.cmdSUA.Enabled = Not la
Me.cmdKhongluu.Enabled = Not la
Me.cmdLUU.Enabled = Not la
Me.subKetQua.Enabled = Not la
End Sub
Private Sub Set_lockCtrl(lCtrl As Boolean)
Me.txtTEN.Locked = lCtrl
Me.txtNAMSINH.Locked = lCtrl
Me.txtDIACHI.Locked = lCtrl
Me.subKetQua.Enabled = Not lCtrl
End Sub

Thành Me.txtDIACHI.Enabled = true
sau đó save lại rồi nhấn F5 load lại cái form của bạn là chạy theo ý của bạn ngay mà.

Đây là data mình sửa cho bạn. links download
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
Reply
Những người đã cảm ơn danhxetnghiem
#15
(02-10-13, 12:42 AM)quanghoasla Đã viết: bạn điều chỉnh mã như sau: bạn tìm đoạn code Me.txtDIACHI.Locked = lCtrl
Private Sub Set_lockAll(la As Boolean)
Me.txtTEN.Locked = la
Me.txtNAMSINH.Locked = la
Me.txtDIACHI.Locked = lCtrl
Me.cmdTHEM.Enabled = Not la
Me.cmdSUA.Enabled = Not la
Me.cmdKhongluu.Enabled = Not la
Me.cmdLUU.Enabled = Not la
Me.subKetQua.Enabled = Not la
End Sub
Private Sub Set_lockCtrl(lCtrl As Boolean)
Me.txtTEN.Locked = lCtrl
Me.txtNAMSINH.Locked = lCtrl
Me.txtDIACHI.Locked = lCtrl
Me.subKetQua.Enabled = Not lCtrl
End Sub

Thành Me.txtDIACHI.Enabled = true
sau đó save lại rồi nhấn F5 load lại cái form của bạn là chạy theo ý của bạn ngay mà.

Đây là data mình sửa cho bạn. links download

Cảm ơn Bạn Quanghoasla rất nhiều, mình đã làm được. Thật hay. Phải gọi bạn Quanghoasla là sư phụ. Khi nào gặp thắc mắc, mình sẽ tìm bạn.
Chữ ký của danhxetnghiem Đừng bao giờ so sánh đoạn đầu của bạn với đoạn giữa của người khác
Reply
Những người đã cảm ơn
#16
(27-09-13, 12:47 AM)MatTroiNguQuen Đã viết: Để linh hoạt hơn, bạn viết một thủ tục để khóa các control nào cần khóa và gọi thủ tục này
VD:
Mã:
Private Sub Set_lockCtrl(lCtrl As Boolean)
    Me.txtTEN.Locked = lCtrl
    Me.txtNAMSINH.Locked = lCtrl
    Me.txtDIACHI.Locked = lCtrl
    Me.subKetQua.Enabled = Not lCtrl
End Sub

Mã:
Private Sub cmdLUU_Click()
     Set_lockCtrl True    
End Sub

Mình xin chia sẻ một chút với các bạn mới làm quen với lập trình về hàm/thủ tục có tham số:

1/ Mình không đi sâu vào hàm/thủ tục (các bạn có thể tham khảo các bài viết trên mạng) mà chỉ xin giải thích sơ qua để các bạn có thể hiểu khi đọc các bài viết được chia sẻ:
-Trong thủ tục Private Sub Set_lockCtrl(lCtrl As Boolean) các bạn thấy mình có khai báo tham số lCtrl kiểu Boolean (kiểu này chỉ có hai giá trị là True hoặc False) , trong thủ tục mình gán thuộc tính (Locked, Enabled) của các điều khiển (Control) cho giá trị của tham số lCtrl (Vd: Me.txtTEN.Locked = lCtrl)

2/ cách gọi hàm/thủ tục có tham số
-Trong VD trên ta có thể gọi thủ tục Set_lockCtrl bằng một trong các cách sau:
a/ Set_lockCtrl True
b/ Call Set_lockCtrl (True)
c/ Call Set_lockCtrl (lCtrl:=True)

-Với cách gọi c sẽ dễ hiểu hơn, ta dễ nhận thấy Set_lockCtrl được gọi thực thi khối lệnh bên trong với giá trị của tham số lCtrl là True, lúc này chương trình sẽ lần lượt gán :
Me.txtTEN.Locked = True ' (vì lCtrl lúc này là True)
Me.txtNAMSINH.Locked = True
.....
-Với cách a hay b:
Nếu hàm/thủ tục có nhiều hơn một tham số thì khi gọi ta phải viết đúng thứ tự các tham số đã khai báo
VD ta có thủ tục Private Sub Set_lockCtrl(lCtrl As Boolean, str1 as String, str2 As String)
+ Nếu gọi Call Set_lockCtrl (True, txt1, txt2) thì :
lCtrl = true
str1 = txt1
str2 = txt2
+ Nếu gọi Call Set_lockCtrl (True, txt2, txt1) thì:
lCtrl = true
str1 = txt2
str2 = txt1

Vài dòng chia sẻ, có gì thắc mắc các bạn cứ hỏi nha! mình sẽ chia sẻ trong phạm vi hiểu biết có thể 015

Chúc tất cả các bạn và diễn đan một mùa xuân đầm ấm, hạnh phúc Beer_smile
Chữ ký của MTNQ Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
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
  Tạo Menu dạng TreeView bằng Query (không dùng ActiveX) ongke0711 4 518 06-12-16, 09:16 PM
Bài mới nhất: toancvp
  Không cho phép điều chỉnh kích thước của Form ChiMai 1 249 18-09-16, 01:27 PM
Bài mới nhất: ongke0711
  Hightlight field nếu field được modify Anna 2 320 08-09-16, 10:14 AM
Bài mới nhất: ledangvan
  Không cho phép click phải chuột trên form ChiMai 2 273 03-09-16, 09:33 PM
Bài mới nhất: ongke0711
Rainbow [Help] E tạo Form nhập liệu cho table ma không dc BUIHUUDIEN 11 787 24-08-16, 12:30 AM
Bài mới nhất: toancvp

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ơ