Code Khóa mở Khóa (Locked) TextBox - ComboBox (1 người xem)

  • Thread starter Thread starter khamha
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
846
Nghề nghiệp
CNVC Laos
Nhờ các bạn giúp về vấn đề như tiêu đề ,như sau:
1, Trong Form mình có 60 "Ctr" gồm cả TextBox và ComboBox.
2, Mình cần tạo hai nút sau:
2,1, Nút Khoa:khi bấm nút này sẽ khóa "Ctr" từ 1 - 26 và 32 - 60.
2,2, Nút MoKhoa:khi bấm nút này sẽ mở khóa các "Ctr" đã khóa ở trên.
Các bạn xem File đính kèm và giúp mình nhé,Thank
 

File đính kèm

Nhờ các bạn giúp về vấn đề như tiêu đề ,như sau:
1, Trong Form mình có 60 "Ctr" gồm cả TextBox và ComboBox.
2, Mình cần tạo hai nút sau:
2,1, Nút Khoa:khi bấm nút này sẽ khóa "Ctr" từ 1 - 26 và 32 - 60.
2,2, Nút MoKhoa:khi bấm nút này sẽ mở khóa các "Ctr" đã khóa ở trên.
Các bạn xem File đính kèm và giúp mình nhé,Thank
Anh có thể sử dụng 1 trong 2 thuộc tính trong code sau
[GPECODE=vb]Private Sub Khoa_Click()
Dim i&
For i = 1 To 26
' Me.Controls("Ctr" & Right("0" & i, 2)).Enabled = False
Me.Controls("Ctr" & Right("0" & i, 2)).Visible = False
Next
For i = 32 To 60
' Me.Controls("Ctr" & Right("0" & i, 2)).Enabled = False
Me.Controls("Ctr" & Right("0" & i, 2)).Visible = False
Next
End Sub
Private Sub MoKhoa_Click()
Dim i&
For i = 1 To 26
'Me.Controls("Ctr" & Right("0" & i, 2)).Enabled = True
Me.Controls("Ctr" & Right("0" & i, 2)).Visible = True
Next
For i = 32 To 60
'Me.Controls("Ctr" & Right("0" & i, 2)).Enabled = True
Me.Controls("Ctr" & Right("0" & i, 2)).Visible = True
Next
End Sub


[/GPECODE]
 
Upvote 0
Nhờ các bạn giúp về vấn đề như tiêu đề ,như sau:
1, Trong Form mình có 60 "Ctr" gồm cả TextBox và ComboBox.
2, Mình cần tạo hai nút sau:
2,1, Nút Khoa:khi bấm nút này sẽ khóa "Ctr" từ 1 - 26 và 32 - 60.
2,2, Nút MoKhoa:khi bấm nút này sẽ mở khóa các "Ctr" đã khóa ở trên.
Các bạn xem File đính kèm và giúp mình nhé,Thank

Vầy chắc là được:
Mã:
Private Sub Khoa_Click()
  Dim i As Long
  For i = 1 To 60
    If i < 26 Or i > 31 Then
      Me.Controls("Ctr" & Format(i, "00")).Enabled = False
    End If
  Next
End Sub
Private Sub MoKhoa_Click()
  Dim i As Long
  For i = 1 To 60
    Me.Controls("Ctr" & Format(i, "00")).Enabled = True
  Next
End Sub
 
Upvote 0
Mình phát triển từ Code của Ndu, ta nên làm như sau sẽ chỉ có 1 Code và 1 Nút, bớt rườm rà trên Form quên sử lý như trên (Vì đã khoá rồi thì phải Unable cái nút khoá)

Mã:
Private Sub Khoa_Click()
  Dim i As Long, Mt As Boolean
   If Me.Khoa.Caption = "UnLock" Then
    Me.Khoa.Caption = "Lock"
     Else
       Me.Khoa.Caption = "UnLock"
      End If
    Mt = Me.Khoa.Caption = "Unlock"
   For i = 1 To 60
  If i < 26 Or i > 31 Then _
 Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub
 
Upvote 0
Mình phát triển từ Code của Ndu, ta nên làm như sau sẽ chỉ có 1 Code và 1 Nút, bớt rườm rà trên Form quên sử lý như trên (Vì đã khoá rồi thì phải Unable cái nút khoá)

Mã:
Private Sub Khoa_Click()
  Dim i As Long, Mt As Boolean
   If Me.Khoa.Caption = "UnLock" Then
    Me.Khoa.Caption = "Lock"
     Else
       Me.Khoa.Caption = "UnLock"
      End If
    Mt = Me.Khoa.Caption = "Unlock"
   For i = 1 To 60
  If i < 26 Or i > 31 Then _
 Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub

Nếu đã là vậy thì em thấy dùng cái CheckBox cho nó sướng!
 
Upvote 0
Mình phát triển từ Code của Ndu, ta nên làm như sau sẽ chỉ có 1 Code và 1 Nút, bớt rườm rà trên Form quên sử lý như trên (Vì đã khoá rồi thì phải Unable cái nút khoá)

Mã:
Private Sub Khoa_Click()
  Dim i As Long, Mt As Boolean
   If Me.Khoa.Caption = "UnLock" Then
    Me.Khoa.Caption = "Lock"
     Else
       Me.Khoa.Caption = "UnLock"
      End If
    Mt = Me.Khoa.Caption = "Unlock"
   For i = 1 To 60
  If i < 26 Or i > 31 Then _
 Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub

Hình như đoạn Code của bác sealand chỉ có Locked chứ ko có UnLocked ,bác xem lại ,em bấm mỏi cả tay mà nó vẫn cứ Locked.
 
Upvote 0
Hình như đoạn Code của bác sealand chỉ có Locked chứ ko có UnLocked ,bác xem lại ,em bấm mỏi cả tay mà nó vẫn cứ Locked.
Anh Sealand viết nhầm
Mã:
Private Sub Khoa_Click()
  Dim i As Long, Mt As Boolean
   If Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]L[/COLOR]ock[/B]" Then
    Me.Khoa.Caption = "Lock"
     Else
       Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]L[/COLOR]ock[/B]"
      End If
    Mt = Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]l[/COLOR]ock[/B]"
   For i = 1 To 60
  If i < 26 Or i > 31 Then _
 Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub
Cái thì l thường, cái thì L HOA
Sửa lại cho chúng trùng nhau hết là được
Nếu thấy bị "ngược" thì sửa thêm đoạn
Mt = Me.Khoa.Caption = "Unlock"
Thành:
Mt = Me.Khoa.Caption = "Lock"
Còn không thì thử code này:
Mã:
Private Sub Khoa_Click()
  Dim i As Long
  With Me.Khoa
    .Caption = IIf(.Caption = "Lock", "UnLock", "Lock")
    For i = 1 To 60
      If i < 26 Or i > 31 Then _
      Me.Controls("Ctr" & Format(i, "00")).Enabled = (.Caption = "Lock")
    Next
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như đoạn Code của bác sealand chỉ có Locked chứ ko có UnLocked ,bác xem lại ,em bấm mỏi cả tay mà nó vẫn cứ Locked.

Làm theo thôi nha, rút gọn, bạn thử xem:

Mã:
Private Sub Khoa_Click()
    Dim i As Long, CC As Boolean
    CC = Khoa.Caption = "UnLock"
    For i = 1 To 60
        If i < 26 Or i > 31 Then
            Me("Ctr" & Format(i, "00")).Enabled = CC
        End If
    Next
    Khoa.Caption = IIf(CC, "Lock", "UnLock")
End Sub

Lưu ý: Nếu bạn đã Enable trước khi form được load thì bạn ghi caption cho nút lệnh là UnLock, ngược lại, nếu bạn chưa Enable gì trước các Ctr* thì bạn ghi trên nút lệnh là Lock bạn nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Anh Sealand viết nhầm
Mã:
Private Sub Khoa_Click()
  Dim i As Long, Mt As Boolean
   If Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]L[/COLOR]ock[/B]" Then
    Me.Khoa.Caption = "Lock"
     Else
       Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]L[/COLOR]ock[/B]"
      End If
    Mt = Me.Khoa.Caption = "[B]Un[COLOR=#ff0000]l[/COLOR]ock[/B]"
   For i = 1 To 60
  If i < 26 Or i > 31 Then _
 Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub
Cái thì l thường, cái thì L HOA
Sửa lại cho chúng trùng nhau hết là được
Nếu thấy bị "ngược" thì sửa thêm đoạn
Mt = Me.Khoa.Caption = "Unlock"
Thành:
Mt = Me.Khoa.Caption = "Lock"
Còn không thì thử code này:
Mã:
Private Sub Khoa_Click()
  Dim i As Long
  With Me.Khoa
    .Caption = IIf(.Caption = "Lock", "UnLock", "Lock")
    For i = 1 To 60
      If i < 26 Or i > 31 Then _
      Me.Controls("Ctr" & Format(i, "00")).Enabled = (.Caption = "Lock")
    Next
  End With
End Sub
Để tránh nhằm sao anh Seland không dùng như vầy luôn?
[GPECODE=vb]
Private Sub Khoa_Click()
Dim i As Long, Mt As Boolean
If Me.Khoa.Caption = "UnLock" Then
Me.Khoa.Caption = "Lock"
Mt = True
Else
Me.Khoa.Caption = "UnLock"
End If
For i = 1 To 60
If i < 26 Or i > 31 Then _
Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub[/GPECODE]
 
Upvote 0
Hì, xin lỗi! Mình không vào VBA mà gõ trực tiếp trong khung trả lời nên không Test được.
 
Upvote 0
Để tránh nhằm sao anh Seland không dùng như vầy luôn?
[GPECODE=vb]
Private Sub Khoa_Click()
Dim i As Long, Mt As Boolean
If Me.Khoa.Caption = "UnLock" Then
Me.Khoa.Caption = "Lock"
Mt = True
Else
Me.Khoa.Caption = "UnLock"
End If
For i = 1 To 60
If i < 26 Or i > 31 Then _
Me.Controls("Ctr" & Format(i, "00")).Enabled = Mt
Next
End Sub[/GPECODE]
Em có 3 textbox tên cụ thể là TBMaVV;TBTenVV;TBMST thì sửa đoạn code trên như thế nào ah
Mong các huynh tỷ giúp đỡ
 
Upvote 0
Em có 3 textbox tên cụ thể là TBMaVV;TBTenVV;TBMST thì sửa đoạn code trên như thế nào ah
Mong các huynh tỷ giúp đỡ

Chỉ có 3 TextBox thì cứ viết 3 đoạn code điều khiển là được rồi, đâu cần suy nghĩ đến For.. Next cho rối đầu
 
Upvote 0
Em có 3 textbox tên cụ thể là TBMaVV;TBTenVV;TBMST thì sửa đoạn code trên như thế nào ah
Mong các huynh tỷ giúp đỡ
Mã:
Private Sub CommandButton4_Click()
    Dim c As Byte
    Dim objArr()
    objArr = Array(TBMaVV, TBTenVV, TBMST)
    For c = LBound(objArr) To UBound(objArr)
        objArr(c).Enabled = Not objArr(c).Enabled
    Next
End Sub
 
Upvote 0
Mã:
Private Sub CommandButton4_Click()
    Dim c As Byte
    Dim objArr()
    objArr = Array(TBMaVV, TBTenVV, TBMST)
    For c = LBound(objArr) To UBound(objArr)
        objArr(c).Enabled = Not objArr(c).Enabled
    Next
End Sub

Viết bình thường mất có 3 dòng code không chịu lại cố tình For.. Next cho dài thêm
 
Upvote 0
Viết bình thường mất có 3 dòng code không chịu lại cố tình For.. Next cho dài thêm
Chỉ 3 TextBox đôi khi lại là giả dụ, nhưng nếu nhiều hơn thì theo cách này mà mần thôi. Còn không gom những TextBox loại này vào 1 Frame thì không cần Array, cứ tập hợp nào có TypeName là TextBox là hốt thôi. Nói chung là nhiều cách để xơi lắm! Hihihihi (cái này là dạng tổng quát học từ Thầy mà).
 
Upvote 0
Chỉ 3 TextBox đôi khi lại là giả dụ, nhưng nếu nhiều hơn thì theo cách này mà mần thôi. Còn không gom những TextBox loại này vào 1 Frame thì không cần Array, cứ tập hợp nào có TypeName là TextBox là hốt thôi. Nói chung là nhiều cách để xơi lắm! Hihihihi (cái này là dạng tổng quát học từ Thầy mà).
Nút này nó bị "ngược " 1 chút, bác sửa lại cho em nhé
em muốn là khi form hiện lên thì 3 textbox này được "khóa" trước rùi, ấn vào mới cho sửa
 
Upvote 0
Chỉ 3 TextBox đôi khi lại là giả dụ, nhưng nếu nhiều hơn thì theo cách này mà mần thôi. Còn không gom những TextBox loại này vào 1 Frame thì không cần Array, cứ tập hợp nào có TypeName là TextBox là hốt thôi. Nói chung là nhiều cách để xơi lắm! Hihihihi (cái này là dạng tổng quát học từ Thầy mà).

Thì chẳng phải từ bài 1 đến giờ ta đang viết code theo kiểu "nhiều" textbox đó sao? Cứ thế áp dụng và tùy biến thoải mái nếu ta nằm trong trường hợp "nhiều". Còn hiện giờ tác giả nói rõ rằng:
Em có 3 textbox tên cụ thể là TBMaVV;TBTenVV;TBMST thì sửa đoạn code trên như thế nào ah
 
Upvote 0
Thì chẳng phải từ bài 1 đến giờ ta đang viết code theo kiểu "nhiều" textbox đó sao? Cứ thế áp dụng và tùy biến thoải mái nếu ta nằm trong trường hợp "nhiều". Còn hiện giờ tác giả nói rõ rằng:
Vì những code trước nó dính dáng đến Caption nên với người chưa rành code sẽ bị rối và khó tùy biến được ạ.

Với 3 dòng:

Mã:
Private Sub CommandButton4_Click()
    TBMaVV.Enabled = Not TBMaVV.Enabled
    TBTenVV.Enabled = Not TBTenVV.Enabled
    TBMST.Enabled = Not TBMST.Enabled
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom