MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Compartilhe

    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Mensagem  asimoes em Dom 30 Nov 2014, 02:48

    Pessoal é o seguinte, tenho um comando CREATE TABLE que cria uma tabela, cria a tabela com um nome variável de um INPUTBOX, entao dependendo do valor do INPUTBOX a tabela terá um nome diferente, mas sua estrutura será sempre a mesma. Até aí ok, o problema é como fazer pra criar um consulta simples que exiba os dados dessa tabela sendo que o nome dela varia! Alguem saberia como fazer isso?

    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Re: [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Mensagem  criquio em Dom 30 Nov 2014, 02:58

    Uma pergunta: por que criar tabelas diferentes com a mesma estrutura?


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Mensagem  Avelino Sampaio em Dom 30 Nov 2014, 09:10

    Olá!

    Utilize uma variável para armazenar o nome da tabela. Algo assim:

    dim strNomeTabela as string
    dim strSql as string
    dim qry as QueryDef

    strNomeTabela = inputbox("Informe o nome da tabela")

    currentdb.execute "CREATE TABLE " & strNometabela & " (Campo1, campo2, ...)"

    strSql = " SELECT campo1, campo2 FROM " & strNometabela & " WHERE campo3 > 100;"

    set qry = Currentdb.CreateQueryDef("NomeDaNovaConsulta",strSql)

    Docmd.OpenQuery "NomeDaNovaConsulta"

    set qry = nothing


    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    Re: [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Mensagem  asimoes em Dom 30 Nov 2014, 14:03

    ola!

    Bom Criquio é o seguinte na empresa em que trabalho estou desenvolvendo um aplicação em que vario planejadores trabalharão ao mesmo tempo em rede, eles geram informações do sistema corporativo da empresa e ele tratam essas informações numa planilha de excel, apos tradadas esse sistema que estou desenvolvendo ira importa-las para uma tabela onde o sistema fara vários processo que incluem concatenação, soma de qtde com tabela de estoque... e no final depois de tudo tratado essas informações serão inseridas em uma tabela variável criada conforme o plan e em sequência abria a consulta criada para q planejador analise se está tudo certo, onde talvez tenha necessidade de alteração de dados através dessa consulta, tipo inserção de linha, exclusão de linha, alteração de linha (campo qtde), e pos tudo verificado eles fecharam a consulta onde o sistema vai gerar um arquivo .xls com as informações alteradas, inserida uma cópia em uma tabela histórico e será excluída a tabela e a consulta variável. Então como processos serão feito varias vezes ao mesmo tempo por mais de 10 planejadores simultaneamente, terei q criar a tabela e consulta variável pra cada plan. oq vc acha?


    Avelino, seu código funcionou perfeitamente! só fiz umas adaptações conforme abaixo:

    Código:
    Dim strNomeTabela As String
    Dim strSql As String
    Dim qry As QueryDef

    strNomeTabela = InputBox("Informe o nome da tabela")

    plan = Replace(strNomeTabela, " ", "")


    CurrentDb.Execute "CREATE TABLE " & plan & " (Campo1 Text, campo2 Text, campo3 Text)"


    strSql = " SELECT * FROM " & plan & ";"

    Set qry = CurrentDb.CreateQueryDef("Consulta-" & plan, strSql)

    DoCmd.OpenQuery "Consulta-" & plan

    Set qry = Nothing



    Agora eu pergunto como eu poderia executar uma ação ao fechar a consulta criada no código acima? ex: ao fechar a consulta criada pelo código acima seja exibido um msgbox com o botão ok/cancel confirmando ou não a exportação dos dados para excel e apos confirmar gere o arquivo .xls com os dados da consulta analisada e envie as informações para o a tela histórico depois exclua a consulta e a tabela criada!

    como executo essas ações apos clicar no botão fecha da consulta?


    desde já muito obrigado a ajuda!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.

    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    Re: [Resolvido]Consuta que recebe dados de uma tabela que varia o nome

    Mensagem  asimoes em Ter 02 Dez 2014, 10:44

    Não teve jeito, tive q criar um form e incorporar a consulta nele!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.

      Data/hora atual: Qua 07 Dez 2016, 20:12