Roselip 14/12/2013, 12:50
Acho que não entendi bem sua resposta, porque se for os filtros sequenciais que estou pensando, esses estão na parte abaixo do vba e mesmo assim não funiona.
Então como isso seria montado?
Option Compare Database
'---------------------------------------------------------------------------------------
' Procedimento : btRemoveFiltro_Click
' Chamada : Botão Remover o filtro
' Função : Reinicia o formulário
'---------------------------------------------------------------------------------------
'
Private Sub btRemoveFiltro_Click()
'Reinicia os filtros
DoCmd.ShowAllRecords
Me.Filter = ""
Me.FilterOn = False
Dim frm As Form
Dim ctrl As Control
Dim varNomeControle As String
'Atribui a referência do formulário à variável
Set frm = Screen.ActiveForm
Me.Requery
'Verifica se o RecordSource do formulário é uma instrução SQL
'ou uma tabela/consulta
Dim varRecSource As String 'Variável para o RecordSource
Dim varTabela As String 'Variável para o nome da tabela
'Define a variável para o formulário ativo
varRecSource = Screen.ActiveForm.RecordSource
'Verifica se a variável possui a string "Select" (ou seja, se é uma
'instrução SQL
'Se for instrução SQL, pega a parte da instrução referente ao nome da Tabela
If InStr(1, varRecSource, "Select") <> 0 Then
varTabela = Mid(varRecSource, 9, (InStr(1, varRecSource, ".") - 10))
Debug.Print "varTabela - Select : " & varTabela
'Caso contrário, pega o nome da tabela
Else
varTabela = varRecSource
Debug.Print "varTabela - Tabela : " & varTabela
End If
'Reinicia o rowsource das caixas de cominação, limpa os campos
'e habilita os controles
For Each ctrl In frm.Controls
If Mid(ctrl.Nome, 1, 2) = "fm" Then
varNomeControle = ctrl.Name
ctrl.Value = ""
rsoSQL = "" & _
"SELECT " & varTabela & "." & Mid(varNomeControle, 3, (Len(varNomeControle) - 2)) & " " & _
"FROM " & varTabela & " " & _
"GROUP BY " & Mid(varNomeControle, 3, (Len(varNomeControle) - 2)) & " " & _
"ORDER BY " & Mid(varNomeControle, 3, (Len(varNomeControle) - 2))
Debug.Print "rsoSQL > " & rsoSQL
Debug.Print ""
Me(varNomeControle).Enabled = True
Me(varNomeControle).RowSource = rsoSQL
Me(varNomeControle).Requery
End If
Next
'Reinicia as variávels globais
varFiAc = ""
varGroup = ""
End Sub
'---------------------------------------------------------------------------------------
' Chamada : Seleção no filtro de Nomes (nome da c.combinação AAAA)
' Função :
'---------------------------------------------------------------------------------------
Private Sub fmGrupo_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmSubgrupo_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmCodigoCliente_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmRazaoSocial_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmFantasia_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmNumeroPedido_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmEntrada_AfterUpdate()
Call FiltroSequencial
End Sub
Private Sub fmSaida_AfterUpdate()
Call FiltroSequencial
End Sub