MaximoAccess

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

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 21/11/2014, 14:46

    bom dia, pessoal!

    eu copiei o source de um subform para um recordset usando o RecordsetClone. ate ai tudo bem. o problema eh que nesse source falta uma unica coluna, que terah a mesma informacao repetida para todas as linhas, que eh o nome do departamento (ex. Tesouraria). estou tentando adicionar esse campo (ex. nome_depto) no recordset, mas, nao consigo.

    alem disso, preciso reordenar as colunas (campos) salvas nesse recordset, pois, a ordem que esta lah no subform nao serah a mesma no recordset.

    quem souber e puderm me ajudar, eu agradeco.

    obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 21/11/2014, 14:54

    Olá! Poste a cópia que fez para vermos como está.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 21/11/2014, 15:14

    olha soh Criquio como fiz. os outros codigos q estao como comentario, foram minhas tentativas invalidas.

    obrigado.

    Código:
       Dim campo As Field
        Dim novoCampo As Field
        
        novoCampo.Name = "nome_depto"
        novoCampo.Value = "Tesouraria"
        Debug.Print "NovoCampo: " & novoCampo.Name
        
        'Set resultadoBusca = Nothing
        'Set resultadoBusca = CurrentDb.OpenRecordset(SQL)
        resultadoBusca.MoveFirst
        'resultadoBusca.Fields.Append "nome_depto", , , , "Tesouraria"
        resultadoBusca.Fields.Append novoCampo
        resultadoBusca.Fields.Refresh
        'fields.Append Name, Type, DefinedSize, Attrib, FieldValue
        
        For Each campo In resultadoBusca.Fields
            Debug.Print campo.Name
        Next campo
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 21/11/2014, 15:37

    Mas é necessário mesmo incluir esse campo uma vez que o dado dele é o mesmo para todos? Não seria mais simples escrever "TESOURARIA" em um label? Ou tem outros departamentos que serão repetidos em blocos de linhas?

    De qualquer forma, você pode definir o RecordSource assim também:

    Código:
    Me.RecordSource = "SELECT * FROM NomeDaTabela" ' inclui todos os campos da tabela

    Para escolher apenas alguns campos:

    Código:
    Me.RecordSource = "SELECT nomeCampo1, nomeCampo2, nomeCampo3 FROM NomeDaTabela"

    Para mudar a ordem basta colocar ORDER BY NomeCampo DESC ou ASC no lugar de DESC


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 21/11/2014, 15:49

    Criquio, o source eh construido em uma funcao, que eh usada para outras telas, por isso, nao poderei mudar a estrutura do source. talvez eu tenha me expressado errado, mas, eu preciso mudar a sequencia dos campos no recordset, nao a ordem que se pode ser mudada com a clausula SQL ORDER BY. segue a sequencia desejada:

    1) sequencia no source: id_documento, mes, dia, ano, centro_custo
    2) sequencia no recordset: id_documento, nome_depto,  centro_custo, dia, mes, ano

    sendo que o campo nome_depto, que so existirah no recordset, pois nao existe no source, deverah ser incluido pelo .Append
    alem disso, esse campo terah a string "Tesouraria" em todas as linhas

    o recordset recebe o source da seguinte forma:
    Código:
    Set resultadoBusca = Forms![frmBuscaTesouraria]![frmSubBuscaTesouraria].Form.RecordsetClone

    valeu.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 21/11/2014, 16:57

    Olha, fica meio difícil opinar assim de fora, sem conhecer a estrutura do aplicativo, mas acredito que esse subformulário possa ser carregado do que jeito que mencionei, uma vez que só precisar desse recordsource para carregar esse subform, não?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 21/11/2014, 17:01

    o subform nao eh o problema. o carregamento dele estah sendo feito por uma funcao que carrega tambem outras telas. o que eu preciso eh aproveitar o resultado que esse subform traz pra fazer uma planilha Excel, adicionando mais um campo e criando uma nova sequencia de colunas, diferentes da que estah no subform.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 21/11/2014, 17:08

    Qual é o sql de origem? Qual será a relação do subform com os dados exportados? Ainda acho que será mais fácil criar um novo RecordSet e fazer um Loop por ele, mesmo que precise ter uma relação direta com o source do subformulário.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 23/11/2014, 02:16

    boa noite a todos!

    eu to tentando adicionar um novo campo em uma querydef usando o metodo Fields.Append. primeiro, eu tentei da seguinte forma:

    Código:
    Dim myField as Field    
    myQueryDef.Fields.Append myField

    e ai, eu tentei novamente dessa forma:

    Código:
    myQueryDef.Fields.Append "my_field_name"

    nada funcionou. talvez, alguma coisa esteja faltando, talvez nao. se alguem souber como resolver isso, por favor, me ajude. ficarei grato por sua ajuda.

    eu tambem preciso adicionar esse novo campo em uma posicao especifica da querydef, na segunda posicao.

    muito obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 23/11/2014, 10:04

    Não seria mais simples escrever toda a query para adaptá-la à essa necessidade?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  Avelino Sampaio em 23/11/2014, 10:07

    Olá!

    Em uma consulta vc cria campos VIRTUAIS (Calculados). Este campo receberá que valor ? Observe no exemplo abaixo que o campo ValorTotal foi criado para retornar o cálculo.

    SELECT quatidade, valorUnitário, ([quantidade]*[valorUnitario) AS ValorTotal FROM tblEstoque;

    Confirme se quer criar o campo VIRTUAL na consulta ou um campo real direto na tabela, o que seria com o TableDefs e não queryDefs

    Aguardamos



    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7670
    Registrado : 05/11/2009

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  Alexandre Neves em 23/11/2014, 10:26

    Bom dia,
    Onde cria a consulta, acrescente o campo que vai precisar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 23/11/2014, 22:15

    ola, tudo bem?

    essa querydef esta sendo construida a partir de um source de uma subform. nessa subform eu tenho todos os campos que preciso, exceto um, que eh o campo nome_depto. esse campo se repetirah em todas as linhas, por se tratar de um mesmo departamento: "Tesouraria". eu nao posso tirar essa informacao, pois, o sistema cria tanto planilhas por departamento, quanto todos os departamentos em uma soh planilha. e ai teria que ter o departamento para realizar filtros no Excel.

    tudo que preciso eh:
    1 - copiar esse subform para uma querydef (isso eu jah faço) ou tabledef
    2 - criar o campo "nome_depto" na querydef (ou tabledef) logo apos o primeiro campo (Fields(0)) e salvar a informacao "Tesouraria" para todas as linhas
    3 - alterar a sequencia dos campos, pois, no subform a sequencia dos campos estah diferente da sequencia que deverah estar na planilha Excel. ex: mudar de id_docum, me, dia, ano, centro_custo para id_docum, centro_custo, dia, mes, ano e acrescentar o campo nome_depto apos o campo id_docum

    obrigado a todos.

    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  criquio em 23/11/2014, 22:28

    Vi agora que você criou dois tópicos para a mesma dúvida. Isso polui o fórum e dificulta futuras pesquisas. Eu fundi os dois tópicos em um só.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  Avelino Sampaio em 24/11/2014, 09:36

    Olá!

    Acompanhe o código e tente adaptar ao seu caso:


    Dim strSql As String
    'Passa a string SQL da propriedade RecordSource do subformulário para a variável strSql
    strSql = Me!NomeControleSubFormulario.Form.RecordSource
    'Acrescenta na string SQL o campo Nome_depto depois do id_documento
    strSql = Replace(strSql, "id_documento", "id_documento,'Tesouraria' AS Nome_depto")
    'Abre o recordset da string SQL modificada
    Set rs = CurrentDb.OpenRecordset(strSql)
    ...
    ...
    Set rs = Nothing


    Nota:  A origem do seu subformulário tem que estar com a string SQL (SELECT  id_documento, mes, dia, ano, centro_custo FROM Nometabela)

    Aguardamos

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  DamascenoJr. em 21/3/2020, 18:09

    MS Kid, este assunto está resolvido? Se sim, finalize o tópico.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  MS Kid em 27/3/2020, 19:59

    obrigado pessoal!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7670
    Registrado : 05/11/2009

    [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA Empty Re: [Resolvido]Como Adicionar um Novo Campo (Coluna) em uma QueryDef no Access VBA

    Mensagem  Alexandre Neves em 29/3/2020, 10:15

    Bom dia
    MS Kid Leia e siga as regras do fórum
    regra 5. Retorne sempre se deu certo, esse retorno é muito importante.


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 10/8/2020, 06:31