MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Como localizar objetos no access 2003

    Compartilhe
    avatar
    suporte
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/01/2011

    Como localizar objetos no access 2003

    Mensagem  suporte em Qua 05 Jul 2017, 20:22

    Tenho muitas consultas, formulários e relatórios criados num sistema escolar, existe alguma possibilidade de localizar um objeto(nome de relatório), simplesmente digitando o primeiro nome, igual fazemos na pesquisa do access 2007.

    Obs.: Meu sistema é no access 2003.


    Desde já agradeço a atenção,

    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Como localizar objetos no access 2003

    Mensagem  ronaldojr1 em Qui 06 Jul 2017, 21:39

    no access 2007 em diante tem essa barra de pesquisa no painel de navegação, nao sei se tem algum lugar para ativar essa barra no 2003,
    faz muitos anos que nao vejo essa versão, nao lembro nem do layout dele, mas enfim, acho que esse codigo pode te ajudar.

    Código:
    Function findObject(nomeObj As String)
    'By JPaulo ® Maximo Access 2010
    'Modificado por ronaldo

    Dim obj As AccessObject
    Dim dbs As Object
    Dim T As DAO.TableDef
    Dim tblNome As String
    Dim i As Integer
    Dim X As Integer
    Dim db As DAO.Database
      
        Set db = CurrentDb() 'para o access 2007
        Set dbs = Application.CurrentProject 'para o access 2000 e 2003

    '       percorre por todos formularios
            For Each obj In dbs.AllForms
                 If obj.Name Like "*" & nomeObj & "*" Then
                    Application.SetHiddenAttribute acForm, obj.Name, False
                 Else
                    Application.SetHiddenAttribute acForm, obj.Name, True
                End If
                
            Next obj

    '       percorre por todos relatorios
            For Each obj In dbs.AllReports
               If obj.Name Like "*" & nomeObj & "*" Then
                    Application.SetHiddenAttribute acReport, obj.Name, False
                 Else
                    Application.SetHiddenAttribute acReport, obj.Name, True
                End If
            Next obj
            
            'percorre pelos modulos
             For Each obj In dbs.AllModules
                If obj.Name Like "*" & nomeObj & "*" Then
                    Application.SetHiddenAttribute acModule, obj.Name, False
                Else
                    Application.SetHiddenAttribute acModule, obj.Name, True
                End If
            Next obj
            
            'percorre pelas macros
            For Each obj In dbs.AllMacros
                If obj.Name Like "*" & nomeObj & "*" Then
                    Application.SetHiddenAttribute acMacro, obj.Name, False
                 Else
                    Application.SetHiddenAttribute acMacro, obj.Name, True
                End If
            Next obj
            
             'percorre pelas consultas
            Set dbs = Application.CurrentData
                For Each obj In dbs.AllQueries
                    
                    If obj.Name Like "*" & nomeObj & "*" Then
                       Application.SetHiddenAttribute acQuery, obj.Name, False
                     Else
                        Application.SetHiddenAttribute acQuery, obj.Name, True
                     End If
            Next obj
            
            
    '       percorre as tabelas
            For i = 0 To dbs.TableDefs.Count - 1 'originalmente era db.TableDefs.Count -1, troquei na tentativa de funcionar para a versao 2003, se nao der certo volte para o modo original e ve se nao da erro
                Set T = dbs.TableDefs(i)  'originalmente era db.TableDefs.Count -1, troquei na tentativa de funcionar para a versao 2003, se nao der certo volte para o modo original e ve se nao da erro
                
                tblNome = T.Name
                
                    If Not tblNome Like "Msys*" And tblNome Like "*" & nomeObj & "*" Then
                        Application.SetHiddenAttribute acTable, tblNome, False
                     ElseIf Not tblNome Like "Msys*" Then
                        Application.SetHiddenAttribute acTable, tblNome, True
                    End If
                    
                    X = X + 1
            Next i
                    
    End Function
    para a minha versão(access 2010) esta funcionando normal a função que te passei, se der erro no seu tente jogar na net algo como "listar tabela access 2003".

    para usar
    Código:
    findObject (Me.txtPesquisa)'me.txtPesquisa e o campo que de texto que criei.

    obs.: para fazer voltar todos os objetos digite "*" no campo de pesquisa.
    avatar
    suporte
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/01/2011

    Re: Como localizar objetos no access 2003

    Mensagem  suporte em Qui 06 Jul 2017, 23:05

    Me perdoe ronaldojr1, meu conhecimento limitado, rsrsr, qual seria o meu procedimento? Jogo este código dentro de um módulo? e Depois crio uma caixa de texto com um botão? Me perdoe eu não entendi.

    Desde já fico agradecida a sua atenção, muito, mas muito obrigada mesmo!
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Como localizar objetos no access 2003

    Mensagem  ronaldojr1 em Sex 07 Jul 2017, 13:01

    é exatamente o que vc disse,
    a função cole em um modulo a parte.

    ai para usar crie um formulario qualquer coloque uma caixa de texto.

    ai vc pode usar de duas maneiras.

    1º coloque o codigo no evento "apos atualizar" do campoDeTexto
    2º crie um botao e adicione o codigo no evento "ao clicar" do botão
    Código:

    if Not IsNull(me.nmCampoTexto) then
       findObject(me.nmCampoTexto)
    else
       findObject("*") 'se for nulo reabre todos objetos
    endif
    avatar
    suporte
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/01/2011

    Re: Como localizar objetos no access 2003

    Mensagem  suporte em Sab 08 Jul 2017, 21:31

    Desculpe a falta de retorno, estava sem internet.

    Deu um erro vou disponibilizar aqui um bd básico, que poderia posteriormente ficar como exemplo. Coloquei no formulário pesquisa, o procedimento que você pediu.
    Anexos
    Demo_2009.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (59 Kb) Baixado 7 vez(es)
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Como localizar objetos no access 2003

    Mensagem  ronaldojr1 em Seg 10 Jul 2017, 12:42

    bom dia

    na parte da função findObjetc que percorre pelos formularios substitua por esse codigo
    Código:
    'percorre por todos formularios
            For Each obj In dbs.AllForms
                If obj.Name <> "pesquisa" Then 'essa linha evita o erro de "formulario de pesquisa aberto"
                If obj.Name Like "*" & nomeObj & "*" Then
                        Application.SetHiddenAttribute acForm, obj.Name, False
                    Else
                        Application.SetHiddenAttribute acForm, obj.Name, True
                    End If
                End If
            Next obj
    avatar
    suporte
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/01/2011

    Re: Como localizar objetos no access 2003

    Mensagem  suporte em Seg 10 Jul 2017, 21:44

    ronaldorj1 muito obrigada mestre ficou certo.

    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Como localizar objetos no access 2003

    Mensagem  ronaldojr1 em Ter 11 Jul 2017, 12:43

    disponha, mas não consiguiriamos sem o criador do codigo orignal (JPaulo), eu apenas modifiquei o codigo na sua necessidade.
    rsrs
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Como localizar objetos no access 2003

    Mensagem  ronaldojr1 em Qui 13 Jul 2017, 14:25

    oi suporte td bem,
    esqueci de destuir os objetos de abertura do banco de dados.
    coloque essas duas linhas no final da função findObjetct

    Set db = Nothing
    Set dbs = Nothing

      Data/hora atual: Seg 20 Nov 2017, 17:21