Disable some controls on a form based on a condition

Amir 181 Reputation points

I have a form that have several controls on it. I want to disable some of them when the user doesn't have complete authority to them. But when I run the code it says, "Object doesn't support this property or method". I don't know what my fault is. The code is in the open form event.

Private Sub Form_Open(Cancel As Integer)  
'get the information send from main form  
If Not IsNull(Me.OpenArgs) Then  
    Me.txtMainOrderID.DefaultValue = """" & Me.OpenArgs & """"  
End If  
'Control the access of the user to form  
Dim UserName As String  
UserName = TempVars!tempUserName  
If DLookup("frmLithoWorkOrder", "tblUser", "UserLogin='" & UserName & "'") = "Access" Then  
    'Do nothing  
ElseIf DLookup("frmLithoWorkOrder", "tblUser", "UserLogin='" & UserName & "'") = "Limited" Then  
    Me.AllowAdditions = False  
    Me.AllowDeletions = False  
    'Disable all controls on form except path file box and lithography notes  
Dim ctl As control  
    For Each ctl In Me.Controls  
        If ctl.Tag = "litho" Then  
            ctl.Enabled = True  
            ctl.Enabled = False  
        End If  
    MsgBox "ÔãÇ Èå ÞÓãÊí ÇÒ ÝÑã ÏÓÊÑÓí ÏÇÑíÏ."  
    MsgBox "ÔãÇ ãÌÇÒ Èå æÑæÏ Èå Çíä ÈÎÔ äãí ÈÇÔíÏ"  
End If  
End Sub  


Access Development
Access Development
Access: A family of Microsoft relational database management systems designed for ease of use.Development: The process of researching, productizing, and refining new or existing technologies.
846 questions
0 comments No comments
{count} votes

Accepted answer
  1. Karl Donaubauer 1,726 Reputation points MVP


    The Else part of your For Each loop is executed for every control in the form that does not have "litho" in the tag. You probably have controls in the form without "Litho" that do not have an Enabled property, e.g. Labels. Hence the error.

    You can work around this e.g. by specifying the appropriate ControlTypes in the If condition in the loop. Have a look at the ControlType documentation and the "AcControlType" enumeration there.



0 additional answers

Sort by: Most helpful