Bom dia,
Não sei se essa dúvida já foi respondida aqui no Forum, eu não achei na busca.
Tenho um loop que passa por todos os controles de um Form com uma expressão OnError. Na primeira passagem do loop ele funciona, mas a partir da segunda a expressão OnError deixa de funcionar!
Pesquisei e vi que isso é uma questão geral do VBA...
Será que alguém poderia me ajudar?
Caso ajuda segue o código:
For Each Ctl In Me.Controls 'Faz um loop por cada controle do Form
'Caso o controle seja um Textbox e não se chame FAMILIA_OCULTO então
If Ctl.ControlType = acTextBox And Ctl.Name <> "FAMILIA_OCULTO" Then
On Error GoTo Prox
Ctl.SetFocus 'Coloca o foco no controle
Busca.Atrib = Ctl.Name 'Atribui o nome do controle à variável Atributo na classe BuscaProduto
If Ctl.TEXT <> "" And Not IsNull(Ctl.TEXT) Then 'E não esteja vazio nem seja nulo
Busca.TxtBoxBusca (Ctl.TEXT) 'Chama a Função txtbusca dentro da classe BuscaProduto passando o parâmetro do texto digitado no controle
End If
GoTo Prox2
Prox:
Busca.Atrib = Ctl.Name 'Atribui o nome do controle à variável Atributo na classe BuscaProduto
If Ctl.Value <> "" And Not IsNull(Ctl.Value) Then 'E não esteja vazio nem seja nulo
Busca.TxtBoxBusca (Ctl.Value) 'Chama a Função txtbusca dentro da classe BuscaProduto passando o parâmetro do texto digitado no controle
End If
Prox2:
End If
'Caso o controle seja tipo combobox:
If Ctl.ControlType = acComboBox Then
If Ctl.Value <> "" And Not IsNull(Ctl.Value) Then 'E não esteja vazio nem seja nulo
Busca.Combo (Ctl.Value) 'Chama a Função Combo dentro da classe BuscaProduto passando o parâmetro do valor índice da combobox
End If
End If
Next Ctl 'Vai para o próximo controle
Muito obrigado!
Não sei se essa dúvida já foi respondida aqui no Forum, eu não achei na busca.
Tenho um loop que passa por todos os controles de um Form com uma expressão OnError. Na primeira passagem do loop ele funciona, mas a partir da segunda a expressão OnError deixa de funcionar!
Pesquisei e vi que isso é uma questão geral do VBA...
Será que alguém poderia me ajudar?
Caso ajuda segue o código:
For Each Ctl In Me.Controls 'Faz um loop por cada controle do Form
'Caso o controle seja um Textbox e não se chame FAMILIA_OCULTO então
If Ctl.ControlType = acTextBox And Ctl.Name <> "FAMILIA_OCULTO" Then
On Error GoTo Prox
Ctl.SetFocus 'Coloca o foco no controle
Busca.Atrib = Ctl.Name 'Atribui o nome do controle à variável Atributo na classe BuscaProduto
If Ctl.TEXT <> "" And Not IsNull(Ctl.TEXT) Then 'E não esteja vazio nem seja nulo
Busca.TxtBoxBusca (Ctl.TEXT) 'Chama a Função txtbusca dentro da classe BuscaProduto passando o parâmetro do texto digitado no controle
End If
GoTo Prox2
Prox:
Busca.Atrib = Ctl.Name 'Atribui o nome do controle à variável Atributo na classe BuscaProduto
If Ctl.Value <> "" And Not IsNull(Ctl.Value) Then 'E não esteja vazio nem seja nulo
Busca.TxtBoxBusca (Ctl.Value) 'Chama a Função txtbusca dentro da classe BuscaProduto passando o parâmetro do texto digitado no controle
End If
Prox2:
End If
'Caso o controle seja tipo combobox:
If Ctl.ControlType = acComboBox Then
If Ctl.Value <> "" And Not IsNull(Ctl.Value) Then 'E não esteja vazio nem seja nulo
Busca.Combo (Ctl.Value) 'Chama a Função Combo dentro da classe BuscaProduto passando o parâmetro do valor índice da combobox
End If
End If
Next Ctl 'Vai para o próximo controle
Muito obrigado!