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

    [Resolvido]Acrescentar campo em tabela temporária

    Compartilhe

    Chamon Consultoria
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 194
    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!
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6262
    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 : 194
    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.

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6262
    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 : 194
    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

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6262
    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 : 194
    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 5 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6262
    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 : 194
    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"
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6262
    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: Sex 28 Jul 2017, 11:41