CHAMANDO FUNCAO
Em um módulo coloquei a sub abaixo: no Load do Form FrmItems faço a chamada:
TravaControles1 Me => aqui esta dando erro (O argumento não é opcional)
A variavel (TipoDoc) esta com (Normal) para identificar o Form FrmItems
Qual a maneira correta para testar essa Sub sendo que a mesma trata dois Forms?
TravaControles1 Me => aqui esta dando erro (O argumento não é opcional)
A variavel (TipoDoc) esta com (Normal) para identificar o Form FrmItems
Qual a maneira correta para testar essa Sub sendo que a mesma trata dois Forms?
Public Sub TravaControles1(Frm As FrmItems, FrmX As FrmEquipamentos)
If TipoDoc = "Normal" Then
Dim Ctrl As Control
For Each Ctrl In Frm.Controls
'trava TextBox do FrameCabecalho
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "1X" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "2X" Then
Ctrl.Enabled = False
'trava TextBox do FrameItems
ElseIf Ctrl.Tag = "TY" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "3X" Then
Ctrl.Enabled = False
End If
'trava ComboBox do FrameCabecalho
ElseIf TypeOf Ctrl Is ComboBox Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
'trava ComboBox do FrameItems
ElseIf Ctrl.Tag = "CY" Then
Ctrl.Enabled = False
End If
End If
If TypeName(Ctrl) = "Label" Then
If Ctrl.Tag = "X" Then
Ctrl.Enabled = False
End If
End If
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Tag = "Cmd1" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "Cmd2" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "Cmd3" Then
Ctrl.Enabled = False
End If
End If
Next Ctrl
ElseIf TipoDoc = "Atuadores" Then
Dim Ctrl As Control
For Each Ctrl In FrmX.Controls
'trava TextBox do FrameCabecalho
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "1X" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "2X" Then
Ctrl.Enabled = False
'trava TextBox do FrameItems
ElseIf Ctrl.Tag = "Z" Then
Ctrl.Enabled = False
End If
'trava ComboBox do FrameCabecalho
ElseIf TypeOf Ctrl Is ComboBox Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
'trava ComboBox do FrameItems
ElseIf Ctrl.Tag = "S" Then
Ctrl.Enabled = False
End If
End If
If TypeName(Ctrl) = "Label" Then
If Ctrl.Tag = "LX" Then
Ctrl.Enabled = False
End If
End If
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Tag = "Cmd1" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "Cmd2" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "Cmd3" Then
Ctrl.Enabled = False
End If
End If
Next Ctrl
End If
End Sub
Citação:TravaControles1 Me => aqui esta dando erro (O argumento não é opcional)
Considerando que a função está num módulo, no lugar de ME, coloque o nome do form. Além disso, vc precisa passar dois (2) parâmentros para a sua função -> Frm e FrmX:
Public Sub TravaControles1(Frm As FrmItems, FrmX As FrmEquipamentos)
TravaControles1 Me => aqui esta dando erro (O argumento não é opcional). Aqui vc está passando apenas um parâmetro.
O erro "O argumento não é opcional" está ocorrendo pq a sua sub espera 2 argumentos e vc ta passando só 1 que é o "Me".
Ou vc passa o segundo argumento que é o "FrmEquipamentos" ou coloca esse argumento como opcional na sua sub....
Ou vc passa o segundo argumento que é o "FrmEquipamentos" ou coloca esse argumento como opcional na sua sub....
Public Sub TravaControles1(Frm As FrmItems, OPTIONAL FrmX As FrmEquipamentos)
Não seja tão especifico, quanto mais abstrato vc for mais aproveitamento do codigo vc terá:
Faça assim:
Public Sub TravaControles1(Frm As Form, OPTIONAL FrmX As Form)
Tópico encerrado , respostas não são mais permitidas