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]Acrescentar campo em tabela temporária

    Compartilhe

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 31/08/2012

    [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Chamon Consultoria em Sab 08 Out 2016, 04:13


    Bd em Access 2010.

    Tabelas envolvidas:
    XML_PROD
    XML_DET
    xmlProdutos (Tabela temporária)

    O Formulário possui um botão de comando que cria uma tabela temporária. Segue código:

    Código:
    'CRIAR TABELA TEMPORARIA
        Dim stSql  As String
        stSql = "SELECT XML_PROD.cProd AS ccVarPro, XML_PROD.cEAN AS ccBarras, XML_PROD.xProd AS ccNomPro, XML_PROD.NCM AS ccNCM, XML_PROD.uCom AS ccMedida, XML_PROD.nFCI AS ccnFCI, Val([qCom]) AS ccQte, Val([vUnCom]) AS ccPreçoCusto, Val([vProd]) AS ValorTotal, tbl_Produtos.CODPRO AS CODIGO, tbl_Produtos.ccNomPro AS NOME, Val([qCom]) AS QTE, Val([vUnCom]) AS CUSTO, Val([vProd]) AS TOTAL, Val([nItem]) AS Item INTO xmlProdutos"
        stSql = stSql & " FROM XML_PROD LEFT JOIN tbl_Produtos ON XML_PROD.cEAN = tbl_Produtos.ccBarras;"
       
       
        DoCmd.SetWarnings False
        DoCmd.RunSQL stSql
        DoCmd.SetWarnings True
       
        DoCmd.Close acForm, Me.Form.Name


    Gostaria de acrescentar "XML_DET.infAdProd AS ccinfAdProd", de modo que o conteúdo do campo "XML_DET.infAdProd" também fosse criado na tabela temporária "xmlProdutos".

    Fiz alguns testes incluindo "XML_DET.infAdProd AS ccinfAdProd" no código, mas aparece uma mensagem pedindo para inserir um valor para o campo.

    Como posso fazer isso?

    Desde já agradeço!

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Alexandre Neves em Sab 08 Out 2016, 09:49

    Bom dia,
    O campo não existirá na tabela XML_DET


    .................................................................................
    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

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 31/08/2012

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Chamon Consultoria em Sab 08 Out 2016, 16:06

    Alexandre, desculpe mas não entendi sua resposta.


    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Alexandre Neves em Sab 08 Out 2016, 16:09

    O campo existe na tabela ou é campo novo?
    pelo código, deve ser da tabela; pela mensagem de erro, não deve existir na tabela


    .................................................................................
    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

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 31/08/2012

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Chamon Consultoria em Sab 08 Out 2016, 16:25

    O campo existe ambas tabelas:

    tbl_Produtos: ccinfAdProd

    XML_DET: infAdProd


    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Alexandre Neves em Sab 08 Out 2016, 16:27

    Só vendo a bd


    .................................................................................
    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

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 31/08/2012

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Chamon Consultoria em Sab 08 Out 2016, 17:12

    Segue anexo para análise.
    Abra o Formulário XML_IMPORTAR e clique em processar.
    Vai aparece a mensagem para inserir um valor.
    Clique em OK e observe que será criada a tabela "xmlProdutos".
    Nessa tabela é criado o campo "ccinfAdProd", porém sem o seu conteúdo que deveria ser captado na tabela XML_DET.
    Anexos
    Criar Tabela Temp.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 4 vez(es)

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Alexandre Neves em Sab 08 Out 2016, 17:50

    Não tem a tabela relacionada no SQL
    Só tem XML_PROD e tbl_Produtos


    .................................................................................
    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

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 31/08/2012

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Chamon Consultoria em Sab 08 Out 2016, 21:32

    Eis a solução:

    Créditos para Avelino Sampaio.

    'CRIAR TABELA TEMPORARIA
    Dim stSql As String
    Dim rs As dao.Recordset
    stSql = "SELECT XML_PROD.cProd AS ccVarPro, XML_PROD.cEAN AS ccBarras, XML_PROD.xProd AS ccNomPro, "
    stSql = stSql & "XML_PROD.NCM AS ccNCM, XML_PROD.uCom AS ccMedida, XML_PROD.nFCI AS ccnFCI, "
    'aqui vc cria o campo vazio
    stSql = stSql & "'' AS ccinfAdProd, "
    stSql = stSql & "Val([qCom]) AS ccQte, Val([vUnCom]) AS ccPreçoCusto, Val([vProd]) AS ValorTotal, tbl_Produtos.CODPRO AS CODIGO, "
    stSql = stSql & "tbl_Produtos.ccNomPro AS NOME, Val([qCom]) AS QTE, Val([vUnCom]) AS CUSTO, Val([vProd]) AS TOTAL, "
    stSql = stSql & "Val([nItem]) AS Item INTO xmlProdutos"
    stSql = stSql & " FROM XML_PROD LEFT JOIN tbl_Produtos ON XML_PROD.cEAN = tbl_Produtos.ccBarras;"

    DoCmd.SetWarnings False
    DoCmd.RunSQL stSql
    DoCmd.SetWarnings True

    Set rs = CurrentDb.OpenRecordset("xmlProdutos")
    Do While Not rs.EOF
    rs.Edit
    rs!ccinfAdProd = Nz(DLookup("infadprod", "XML_Det", "infadprod like '*" & rs!ccnFCI & "*'"))
    rs.Update
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    MsgBox "Montagem da tabela concluida...", vbInformation, "Aviso"

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Acrescentar campo em tabela temporária

    Mensagem  Alexandre Neves em Sab 08 Out 2016, 22:26

    Ainda bem que resolveu
    Mas, se esse código corresponde à solução, nunca seria possível chegar à solução com a falta de dados na bd
    Fica-se com a sensação de impotência, estar-se a matutar e cansar à procura de solução e chegar à conclusão que nos dificultou o trabalho


    .................................................................................
    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: Qui 08 Dez 2016, 00:04