PASSAR NOME DO FORM PARA CHAMAR FUNCAO
Boa noite!!!
Estou precisando passar o nome do(s) form(s) aberto(s) para uma função, mas não estou conseguindo.
Poderiam indicar no código abaixo onde estou errando?
Função que preciso chamar:
Grato
Luciano
Access2003
Estou precisando passar o nome do(s) form(s) aberto(s) para uma função, mas não estou conseguindo.
Poderiam indicar no código abaixo onde estou errando?
Private Sub Form_Timer()
Static IntCron As Integer
IntCron = IntCron + 1
Me.txt_aviso = [Ô]ATENÇÃO, [Ô] & Format(CurrentUser(), [Ô]>[Ô]) & [Ô]!!! [Ô] & vbCrLf _
& [Ô]O sistema está ocioso há [Ô] & v_tempo_ocioso & [Ô] segundos![Ô] & vbCrLf _
& [Ô]Clique em Continuar usando para continuar no sistema![Ô] & vbCrLf & vbCrLf _
& [Ô]Sistema fechando em [Ô] & Me.txt_cronometro & [Ô] segundos.[Ô]
If IntCron = 10 Then
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
For Each obj In dbs.AllForms
If obj.IsLoaded = True Then
[ô]////////////// aqui que não estou conseguindo chamar função passando o nome do form aberto
Call limpa_tag(obj.Name)
End If
Next obj
Form_frm_Menu.sair
Else
Me.txt_cronometro = 10 - IntCron
End If
End Sub
Função que preciso chamar:
Function limpa_tag(frm As Form)
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.Tag = [Ô][Ô]
End If
Next ctl
End Function
Grato
Luciano
Access2003
Tentou passar apenas obj ao invés de obj.name?
Boa tarde Marcos!!!
Sim, já tentei, dá erro 13 (Tipo incompatÃveis).
Não sei estou falando besteira, mas acho que é porque estou passando uma variável AccessObject para uma função que recebe uma variável Form.
Será que é isto?
Se for, como resolvo?
Att
Luciano
Sim, já tentei, dá erro 13 (Tipo incompatÃveis).
Não sei estou falando besteira, mas acho que é porque estou passando uma variável AccessObject para uma função que recebe uma variável Form.
Será que é isto?
Se for, como resolvo?
Att
Luciano
já tentou declarar obj como form?
Ola Marcos,
Sim, já tentei, o erro ocorre sempre quando vou chamar a função limpa_tag, parece que não aceita .Name
Luciano
Sim, já tentei, o erro ocorre sempre quando vou chamar a função limpa_tag, parece que não aceita .Name
Luciano
Então tenta assim:
substitua a sua rotina [Ô]limpa_tag[Ô] por essa:
Function limpa_tag(form_name As String)
For Each ctl In Forms(form_name).Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.Tag = [Ô][Ô]
End If
Next ctl
End Function
substitua a sua rotina [Ô]limpa_tag[Ô] por essa:
Function limpa_tag(form_name As String)
For Each ctl In Forms(form_name).Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.Tag = [Ô][Ô]
End If
Next ctl
End Function
Agora sim, após umas pesquisas:
Aceito sugestões para melhorar.
Grato a todos
Luciano
Private Sub Form_Timer()
Dim openFrm As Access.Form
Static IntCron As Integer
IntCron = IntCron + 1
Me.txt_aviso = [Ô]ATENÇÃO, [Ô] & Format(CurrentUser(), [Ô]>[Ô]) & [Ô]!!! [Ô] & vbCrLf _
& [Ô]O sistema está ocioso há [Ô] & (v_tempo_ocioso / 60) & [Ô] minutos![Ô] & vbCrLf _
& [Ô]Clique em [ô]Continuar usando[ô] para continuar no sistema![Ô] & vbCrLf & vbCrLf _
& [Ô]Sistema fechando em [Ô] & Me.txt_cronometro & [Ô] segundos.[Ô]
If IntCron = 10 Then
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
For Each obj In dbs.AllForms
If obj.IsLoaded = True Then
Set openFrm = Forms(obj.Name)
For Each ctl In openFrm.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.Tag = [Ô][Ô]
End If
Next ctl
End If
Next obj
Form_frm_Menu.sair
Else
Me.txt_cronometro = 10 - IntCron
End If
End Sub
Aceito sugestões para melhorar.
Grato a todos
Luciano
Marcos, vou testar sua sugestão tb.
Luciano
Luciano
Tópico encerrado , respostas não são mais permitidas