MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


3 participantes

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    avatar
    drib
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 14
    Registrado : 23/04/2014

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  drib 23/6/2015, 19:05

    Caros, boa tarde!

    Sempre acompanho aqui o fórum e desenvolvi o código abaixo para um banco de dados que estou construindo aqui na empresa.
    Quando chamo a função "AbrirArquivo" ele abre a janela para buscar o arquivo na rede e eu gostaria que ele atualizasse o campo "Link" da tabela "BaseTaxas", só que dá o erro 3061 na linha abaixo. Vocês conseguem me ajudar?

    Linha que dá erro:
    CurrentDb.Execute "UPDATE ConsImportaTaxa, ImportarBase INNER JOIN BaseTaxas ON ImportarBase.IDTaxa = BaseTaxas.IDTaxa SET BaseTaxas.Link = ' " & Caminho & " ' WHERE ((BaseTaxas.IDTaxa)=[Forms]![MenuImportar]![IDTaxa]);"


    Código:
    Function AbrirArquivo()

    ' Requer referencia a Microsoft Office 14 Object Library
    On Error GoTo PROC_ERR

    DoCmd.SetWarnings False
    'Desativa as mensagens de aviso do sistema

        Dim Caminho As String 'Caminho do arquivo
        Dim fDialog As Office.FileDialog
        Dim strTabela As String
                
        strTabela = "ImportarBase"
            
        'Configura caixa de seleção do arquivo
        Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
        With fDialog
            .AllowMultiSelect = False 'Habilita ou desabilita a seleção de múltiplos arquivos
            .Title = "Selecionar arquivo..."
               'Caminho inicial para seleção
            
            'Configura filtros da caixa de seleção
            .Filters.Clear 'Limpa os filtros
            .Filters.Add "Arquivos Excel - .xlsx", "*.xlsx" 'Adiciona filtro para arquivos .xlsx
            .Filters.Add "Arquivos Excel - .xls", "*.xls" 'Adiciona filtro para arquivos .xlsb
            .Filters.Add "Arquivos Excel - .xlsm", "*.xlsm" 'Adiciona filtro para arquivos .xlsm
            .Filters.Add "Arquivos Excel - .xlsb", "*.xlsb" 'Adiciona filtro para arquivos .xlsb

            If .Show = True Then
            'If (fd.SelectedItems.Count > 0) Then
            
            Caminho = .SelectedItems.Item(1)    'Local do arquivo selecionados são passados para a variável chamada de "Caminho"
            

            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTabela, Caminho, True, "BDBeta" & "!" & "A1:P500"
            'Importa as informações do arquivo selecionado

            DoCmd.OpenQuery "AddIDTaxa", acViewNormal, acEdit
            'Atualiza o campo ID taxa na tabela ImportarBase
            
            CurrentDb.Execute "UPDATE ConsImportaTaxa, ImportarBase INNER JOIN BaseTaxas ON ImportarBase.IDTaxa = BaseTaxas.IDTaxa SET BaseTaxas.Link = ' " & Caminho & " ' WHERE ((BaseTaxas.IDTaxa)=[Forms]![MenuImportar]![IDTaxa]);"
            'Atualiza o campo link com a informação do endereço do arquivo selecionado
            
            DoCmd.OpenQuery "ConsImportarBase", acViewNormal, acEdit
            'Adiciona os dados que estão na tabela temporária Importar Base para a tabela BaseAmostras

            DoCmd.RunSQL "Delete * from ImportarBase"
            'Deleta os registros adicionados na Tabela Temporária ImportarBase

            MsgBox "Dados importados com sucesso!", vbInformation, "Atenção"

            Me.Form.Requery

            DoCmd.SetWarnings True
            'Ativa as mensagens de aviso do sistema
            
        Else
            MsgBox "Arquivo não selecionado.", vbInformation, "Atenção!"
        End If
            
        End With

    PROC_EXIT:
        Exit Function
        
    PROC_ERR:
        DoCmd.Hourglass False
        If Err.Number = 3011 Then
           LocalXML = ""
           MsgBox ("Ficheiro inválido.")
        Else
            MsgBox Err.Description
        End If
        Resume PROC_EXIT
        
    End Function
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Alexandre Neves 23/6/2015, 21:49

    Boa noite, e bem-vindo ao fórum
    será
    CurrentDb.Execute "UPDATE ImportarBase INNER JOIN BaseTaxas ON ImportarBase.IDTaxa = BaseTaxas.IDTaxa SET BaseTaxas.Link = ' " & Caminho & " ' WHERE ((BaseTaxas.IDTaxa)=[Forms]![MenuImportar]![IDTaxa]);"


    .................................................................................
    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
    avatar
    drib
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 14
    Registrado : 23/04/2014

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  drib 23/6/2015, 23:30

    Muito obrigada pela atenção Alexandre, mas ainda não deu certo..... eu alterei o código mas ele não está salvando as informações importadas para a base e nem salvando o endereço do arquivo no campo Link.  Sad
    Estou anexando o banco de dados para melhor entendimento.

    Não consigo entender porque em alguns registros ele funciona e em outros não!
    A versão do Access é 2007.

    Agradeço desde já a atenção! Smile


    Última edição por drib em 25/8/2015, 05:01, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Alexandre Neves 24/6/2015, 00:22

    em formato não reconhecido


    .................................................................................
    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
    avatar
    drib
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 14
    Registrado : 23/04/2014

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  drib 24/6/2015, 20:34

    Que estranho.... a versão é 2007.
    Limpei o arquivo, deixei só o formulário que está dando problema, pode verificar por gentileza?

    Preciso alterar a versão para 2003 ou outra?


    Última edição por drib em 25/8/2015, 05:02, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Alexandre Neves 25/6/2015, 10:08

    Bom dia,
    Continua a mostrar que não é reconhecido.
    Alguém que tenha o 2007 que teste e informe


    .................................................................................
    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
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Alvaro Teixeira 25/6/2015, 12:36

    Olá, abri com 2010 e converti para 2003.
    Segue link BancodeDados.rar
    Entretanto testei o Banco de Dados Teste.mdb no Access 2010 não apresentou nenhum erro na importação.
    Abraço


    Última edição por ahteixeira em 27/6/2015, 13:09, editado 1 vez(es)
    avatar
    drib
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 14
    Registrado : 23/04/2014

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  drib 25/6/2015, 15:21

    Oi Teixeira! Agradeço muito sua atenção mas aqui para mim não estava dando certo ainda....
    Na importação, quando os dados da tabela ImportarBase eram transferidos para a tabela BaseAmostra ocorria um erro de violação de chave primária.

    Alterei a configuração dos campos das Bases e alterei a ordem dos procedimentos no código e deu certo! cheers

    Muito obrigada pela atenção de todos!!! Resolvido!!

    O código ficou assim:

    Código:
    Function AbrirArquivo()

    ' Requer referencia a Microsoft Office 14 Object Library
    On Error GoTo PROC_ERR

    DoCmd.SetWarnings False
    'Desativa as mensagens de aviso do sistema

        Dim Caminho As String 'Caminho do arquivo
        Dim fDialog As Office.FileDialog
        Dim strTabela As String
               
        strTabela = "ImportarBase"
           
        'Configura caixa de seleção do arquivo
        Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
        With fDialog
            .AllowMultiSelect = False 'Habilita ou desabilita a seleção de múltiplos arquivos
            .Title = "Selecionar arquivo..."
            .InitialFileName = "\\brspfs04\WORKFA\Users\Valuation Group\Business Valuation\SERVIÇOS\"
            'Caminho inicial para seleção
           
            'Configura filtros da caixa de seleção
            .Filters.Clear 'Limpa os filtros
            .Filters.Add "Arquivos Excel - .xlsx", "*.xlsx" 'Adiciona filtro para arquivos .xlsx
            .Filters.Add "Arquivos Excel - .xls", "*.xls" 'Adiciona filtro para arquivos .xlsb
            .Filters.Add "Arquivos Excel - .xlsm", "*.xlsm" 'Adiciona filtro para arquivos .xlsm
            .Filters.Add "Arquivos Excel - .xlsb", "*.xlsb" 'Adiciona filtro para arquivos .xlsb

            If .Show = True Then
            'If (fd.SelectedItems.Count > 0) Then
           
            Caminho = .SelectedItems.Item(1)    'Local + arquivo selecionados são passados para a variável chamada de "Caminho"
           
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTabela, Caminho, True, "BDBeta" & "!" & "A1:P500"
            'Importa as informações do arquivo em que o caminho está escrito no campo "Link" do Formulário

            DoCmd.OpenQuery "AddIDTaxa", acViewNormal, acEdit
            'Atualiza o campo ID taxa na tabela ImportarBase
                   
            Me.Form.Requery

            CurrentDb.Execute "UPDATE BaseTaxas INNER JOIN ImportarBase ON ImportarBase.IDTaxa = BaseTaxas.IDTaxa SET BaseTaxas.Link = ' " & Caminho & " ' WHERE ((BaseTaxas.IDTaxa)=(ImportarBase.IDTaxa))"
            'Atualiza o campo link com a informação do endereço do arquivo selecionado
           
            DoCmd.OpenQuery "ConsImportarBase"
            'Adiciona os dados que estão na tabela temporária Importar Base para a tabela BaseAmostras
           
            MsgBox "Dados importados com sucesso!", vbInformation, "Agradecemos a colaboração"

            DoCmd.RunSQL "Delete * from ImportarBase"
            'Deleta os registros adicionados na Tabela Temporária ImportarBase

            DoCmd.SetWarnings True
            'Ativa as mensagens de aviso do sistema
           
        Else
            MsgBox "Arquivo não selecionado.", vbInformation, "Atenção!"

        End If
           
        End With

    PROC_EXIT:
        Exit Function
       
    PROC_ERR:
        DoCmd.Hourglass False
        If Err.Number = 3011 Then
          LocalXML = ""
          MsgBox ("Arquivo inválido.")
        Else
            MsgBox Err.Description
        End If
        Resume PROC_EXIT
       
    End Function
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Alvaro Teixeira 25/6/2015, 17:30

    Obrigado, pelo retorno.
    Os utilizadores do fórum agradecem.
    Abraço

    Conteúdo patrocinado


    [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN Empty Re: [Resolvido]Erro na Importação e update de campo em consulta INNER JOIN

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 20:46