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


+2
Alvaro Teixeira
belker
6 participantes

    [Resolvido]Atualização automática na importação Access Excel

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 16/7/2014, 18:17

    Olá,

    Aqui vai um exemplo, utiliza tabela local temporaria, faz atualização e inserção dos novos. (verifica o nº de registos antes de efetuar operação de importação).

    Abraço
    Anexos
    [Resolvido]Atualização automática na importação Access Excel - Página 1 AttachmentAccessExcel_exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (41 Kb) Baixado 687 vez(es)


    Última edição por ahteixeira em 17/7/2014, 16:19, editado 1 vez(es)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 16/7/2014, 18:41

    não entendi como funciona esse exemplo

    aqui está minha BD e o arquivo em excel que recebo diariamente.

    https://drive.google.com/file/d/0B_j90dPUbrVsc1pHX2MtSGFEVTQ/edit?usp=sharing
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 16/7/2014, 19:34

    Olá, não sou muito bom a explicar, mas vou tentar.

    A tabela A_Funcionarios tem 3 registos e é a tabela que pretendemos atualizar com os dados do ficheiro de excel.

    [Resolvido]Atualização automática na importação Access Excel - Página 1 15ki09

    A tabela ExcelTmp está vazia e é temporária.

    [Resolvido]Atualização automática na importação Access Excel - Página 1 2iqzo02

    O ficheiro em excel Funcionarios.xlsx tem 6 registos (2 novos e 1 alterado)

    [Resolvido]Atualização automática na importação Access Excel - Página 1 25i3if4

    O formulário Fprincipal é que tem o código em VBA que faz a abertura de uma janela para selecionar o ficheiro e processar as consulas.

    [Resolvido]Atualização automática na importação Access Excel - Página 1 117v4o1

    Segue abaixo o código utilizado

    Código:
    Private Sub Comando18_Click()
        
           Call AbrirRC

    End Sub


    Function AbrirRC() As String
        
        ' Requer referencia a Microsoft Office 11 Object Library
        On Error GoTo PROC_ERR
        
        Dim fd As FileDialog
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
        
        fd.Title = "selecione o ficheiro"
        fd.Filters.Add "Ficheiro XLSX", "*.xlsx", 1

        fd.Show
        
        If (fd.SelectedItems.Count > 0) Then
            '------inicio importação excel para sincronização
            Dim strPathFile As String, strFile As String, strPath As String
            Dim strTable As String
            Dim blnHasFieldNames As Boolean
            blnHasFieldNames = True
            strPathFile = fd.SelectedItems(1)
            strTable = "ExcelTmp"
          
            'apaga temporarios
            DoCmd.RunSQL "Delete * from ExcelTmp"
            
            'importa para tabela local temporária
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
            'sql verifica existentes e marca com não novo
            DoCmd.OpenQuery "xls01marcaExistentes", acViewNormal, acEdit
            'sql atualiza existentes
            DoCmd.OpenQuery "xls02AtualizaExistentes", acViewNormal, acEdit
            'sql lança novos no ficheiro funcionarios
            DoCmd.OpenQuery "xls03LancaNovos", acViewNormal, acEdit
            
            MsgBox "Operação concluída.", vbInformation, ""
            
            'apaga temporarios
            DoCmd.RunSQL "Delete * from ExcelTmp"
            
        Else
            MsgBox "Não foi escolhido nenhum ficheiro", vbInformation, ""
        End If
        
    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
            

    Ficando a tabela A_funcionarios atualizada, conforme abaixo

    [Resolvido]Atualização automática na importação Access Excel - Página 1 11j91zb

    Fico aguardar retorno


    Última edição por ahteixeira em 18/2/2015, 14:43, editado 1 vez(es)

    napoli gosta desta mensagem

    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 16/7/2014, 19:52

    Acho que isso vai me ajudar, como faço para ver o código usado para eu poder implantar no meu?
    o meu Office é o 2010.

    Só não entendi o AlunoID, qual o critério que ele utiliza para criar o ID?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 16/7/2014, 20:04

    O AlunoID está aí, mas nem faz falta, considera que é o ID de registo automático.
    Foi do exemplo que fui buscar e adaptei, (feito a correr, quando estava no metro).

    Para abrir o ficheiro deves manter tecla SHIFT primida e clicar duas vezes com o rato em AccessExcel_exemplo.mdb

    Para ver código ALT+F11

    Quanto ao teu ficheiro ainda não examinei.

    Abraço
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 15:52

    tentei colocar o código que você fez aqui.

    1 - quando eu abro o seu access, ele vem em um formato que não consigo fazer nada:
    http://tinypic.com/r/wiae1k/8

    2 - eu importei as suas tabelas/consultas/macros para um access novo, e aparece o seguinte erro:
    http://tinypic.com/r/fok4ux/8

    o que estou fazendo de errado?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 16:11

    Para abrir o ficheiro deves manter tecla SHIFT primida e clicar duas vezes com o rato em AccessExcel_exemplo.mdb

    ou

    Faz download novamente da mensagem nº 7 (já activei menus)

    Relativamente ao ponto 2, verifica as referencias


    [Resolvido]Atualização automática na importação Access Excel - Página 1 1490aw0


    Última edição por ahteixeira em 17/7/2014, 16:24, editado 1 vez(es)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 16:22

    Sim, eu fiz isso tanto para abrir o que você enviou, quanto para abrir o que eu fiz a partir de um access novo importanto os dados da sua tabela, e continua igual as telas conforme a imagem que eu mandei.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 16:26

    Fizeste novo download??

    Na tua importação verifica as referencias

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 17:04

    Olá,

    No entanto, segue abaixo link da tua base de dados no formato 2010.

    AccessExcel_Dados.zip

    Apenas está a importar o ficheiro escolhido (Diario Teste.xls) para a tabela ExcelTmp.

    Aguardamos retorno.


    Última edição por ahteixeira em 30/6/2015, 04:22, editado 1 vez(es)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 18:15

    o access tem 12 tabelas. Qual dessas tabelas ele vai atualizar?

    eu precisava atualizar coisas diferentes em tabelas diferentes (pegando as informações do mesmo arquivo que no caso é o excel). Tem como fazer isso tudo de uma vez?
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 18:17

    e eu comparei rodando o arquivo e não rodando, aparentemente não atualizou.

    mas o arquivo "ExcelTmp" está com informações, não foi excluído.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 19:07

    Olá,

    Como estavas com dificuldades, apenas coloquei o codigo na tua base de dados a importar para a tabela ExcelTmp.

    A atualização dos campos terá que ser criadas as consultas, conforme o outro exemplo.

    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 19:13

    entendi, vou tentar mais tarde e falo se deu certo
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 19:22

    Bem Belker vamos ver se te consigo ajudar.

    A) Ainda estás com problemas de não abrir a base de dados ou dar erro?
    B) O código já funciona na versão disponibilizada acima?

    Se já passamos esta fase então vamos à "sincronização"

    O facto de ser 12 tabelas, se tem que ser , tem que ser.
    Agora não vamos stressar  Smile
    Temos que começar por uma.


    C) Por que tabela começamos? e qual o campo identificador unico (para relacionar)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 19:38

    Bem Belker vamos ver se te consigo ajudar.

    A) Ainda estás com problemas de não abrir a base de dados ou dar erro?
    B) O código já funciona na versão disponibilizada acima?

    Se já passamos esta fase então vamos à "sincronização"

    O facto de ser 12 tabelas, se tem que ser , tem que ser.
    Agora não vamos stressar Smile
    Temos que começar por uma.


    C) Por que tabela começamos? e qual o campo identificador unico (para relacionar)

    A) Agora está abrindo normal.
    B) O código parece estar funcionando sim, quando eu seleciono o arquivo em excel para ele importar, os dados vão todos para a tabela temporária no access.
    C) podemos começar pela tabela PDV, o código único dela é o CNPJ (no access), e na planilha em excel chama (PDV_CNPJ)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 17/7/2014, 19:39

    ahteixeira, muito obrigado pela ajuda que está me dando!!  Very Happy 
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 21:24

    Olá de novo.

    Muito bem, agora tenho a seguinte pergunta.

    Pretendes atualizar a tabela CNPJ (no access), com os dados da planilha em excel (PDV_CNPJ) nos campos que são comuns?

    Sendo o resultado final o mesmo nº de registos, certo?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 17/7/2014, 22:38

    Ola

    Na tabela de Excel existe mais que um registo do mesmo codigo.
    Como pretendes processar, ter todos os registos? agrupar? o ultimo?

    Exemplo

    PDV_CNPJ           (duplicado)
    02543945000690   (80)
    61412110010380   (49)
    61412110005033   (49)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 18/7/2014, 15:25

    para atualizar a planilha "PDV", precisa agrupar os duplicados do excel e atualizar os demais campos que tem em comum.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 18/7/2014, 16:20

    Olá,

    Vamos então ver, tenho um tempinho.

    Uma coisa que reparei é que na tabela PDV os campos são todos de texto com tamanho 255, será necessário?
    No menu entender os campos deveriam estar dimensionados com o tipo de dados que se trabalha.


    Última edição por ahteixeira em 18/2/2015, 14:44, editado 3 vez(es)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 18/7/2014, 16:35

    não é necessário limitar o tamanho não. Mas tem que deixar tudo como texto.

    Como faço para mandar uma imagem aqui? pq sempre que tento anexar, fala que o tamanho é mto grande para enviar.
    E como enviar mais de uma imagem?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 18/7/2014, 16:57

    Para continuar necessito de correspondencias de todos os campos do PDV e os correspondentes do exel

    Exemplo:

    CNPJ ---> PDV_CNPJ
    COD_IMS ---->....


    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 18/7/2014, 16:59

    Para enviar imagem

    Clicar no botão da barra que diz "hospedar uma imagem", deves fazer upload e depois só colocas aqui o link
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 18/7/2014, 17:03

    Relativamente ao tamanho dos campos e Tipo de dados, deve ser efetuado um levantamento do tipo de dados que a tua aplicação necessita.

    o facto de se estar a importar de excel não obriga a campos texto.

    Vamos ver o seguinte exemplo.

    Se o código PDV  for sempre numerico e não passar de 10 digitos, deves configurar assim.

    Vou sair

    xau
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 18/7/2014, 21:10

    necessariamente precisa configurar que o código de PDV tem 10 digitos e é numérico? não pode deixar sem configuração?
    pois creio que seja um trabalho grande fazer tudo isso.



    Excel Access (PDV)
    BRICK_CODIGO BRICK_CODE
    PDV_CNPJ CNPJ
    PDV_NOME PDV
    PDV_ENDERECO ENDEREÇO
    PDV_TELEFONE TELEFONE
    PDV_CEP CEP
    PDV_BAIRRO BAIRRO
    PDV_CIDADE CIDADE
    PDV_UF UF
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 18/7/2014, 21:11

    Excel.....................Access (PDV)

    BRICK_CODIGO........BRICK_CODE
    PDV_CNPJ..............CNPJ
    PDV_NOME.............PDV
    PDV_ENDERECO.......ENDEREÇO
    PDV_TELEFONE.......TELEFONE
    PDV_CEP................CEP
    PDV_BAIRRO...........BAIRRO
    PDV_CIDADE...........CIDADE
    PDV_UF..................UF
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 19/7/2014, 12:49

    Ola,

    Se pretendes os campos assim , tudo bem.

    Procedi à alteração e está a funcionar a Importação de Excel e actualização da tabela PVD.

    No código podes verificar, está a chamar as consultas de 01... até 06...

    Para as restantes tabelas é repetir o processo da 04... até 06...

    Ou caso pretendas outro agrupamento

    repetir processo da 02... até 06

    Nota:

    Para a proxima atualizaçao de tabela deves copiar ou criar consulta nova 07...
    Todo o processo de "sincronização" está a ser feito à base de consultas.

    AccessExcel_Dados_novo.zip

    Abraço


    Última edição por ahteixeira em 30/6/2015, 04:23, editado 1 vez(es)
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 21/7/2014, 16:57

    ahteixeira, funcionou perfeitamente!!!! muito obrigado!!!

    agora eu preciso fazer a atualização para as outras bases, ai não entendi a partir de onde eu vou copiar.

    eu vou usar o mesmo arquivo Diario para atualizar outras bases, por ex a base: "INFORMANTES".

    a partir de qual código eu preciso copiar e mudar as informações para atualizar a "INFORMANTES"?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 21/7/2014, 17:07

    Olá

    A importação já está feita , agora criar novas consultas, repara que elas estão numeradas, estuda o processo.

    Abraço
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 21/7/2014, 18:11

    uma dúvida..
    para fazer uma nova atualização, preciso criar um novo arquivo temporário com as informações que vou atualizar?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 21/7/2014, 18:57

    Olá de novo.
    Não sei como vai ser a nova atualização.
    Mas importação não é necessário, pois os dados importados já estão na tabela ExcelTmp.

    Se tens que fazer novo agrupamento, podes utilizar a tabela ExcelTmpAgrupado (Atenção que não tem os campos todos, mas podes adicionar) ou criar uma nova para esse efeito.

    Exemplo , imagina que vais atualizar a proxima tabela e necessitas do agrupamento por Brick_code

    Crias as seguintes consultas

    07Apaga_Dados_ExcelTmpAgrupado  (é igual à 02...)
    08Agrupar_para_ExcelTmpAgrupado  (podes copiar a 03..  e alterar o agrupamento por Brick_code)
    09xxx_marca_registos_novos  (podes copiar a 04..  e atualizar conforme pretendido)
    10xxx_Atualiza_Existentes (podes copiar a 05..  e atualizar conforme pretendido)
    11xxx_Lanca_novos (podes copiar a 06..  e atualizar conforme pretendido)

    Depois no código ondes está 'Aqui deves iniciar a proxima tabela

    Código:
    ...        'apaga temporarios
            DoCmd.OpenQuery "01Apaga_Dados_ExcelTmp", acViewNormal, acEdit
            DoCmd.OpenQuery "02Apaga_Dados_ExcelTmpAgrupado", acViewNormal, acEdit
            DoEvents
            
            'importa para tabela local temporária
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
            DoEvents
            
            'agrupa e lança na tabela temporaria ExcelTmpAgrupado
            DoCmd.OpenQuery "03Agrupar_para_ExcelTmpAgrupado", acViewNormal, acEdit
            DoEvents
            
            '==== INICIO ACTUALIZAR TABELA PDV ====
            'verifica existentes da tabela PDV e marca com não novo na tabela temporaria ExcelTmpAgrupado
            DoCmd.OpenQuery "04PDV01_marca_registos_novos", acViewNormal, acEdit
            DoEvents
            
            'atualiza existentes
            DoCmd.OpenQuery "05PDV01_Atualiza_Existentes", acViewNormal, acEdit
            DoEvents
            
            'lança novos no ficheiro PDV
            DoCmd.OpenQuery "06PDV01_Lanca_novos", acViewNormal, acEdit
            DoEvents
            '==== FIM ACTUALIZAR TABELA PDV ====
            
            'Aqui deves iniciar a proxima tabela

    Deves incluir os comandos para executar as consultas.

    exemplo:
    Código:
    ...
            'lança novos no ficheiro PDV
            DoCmd.OpenQuery "06PDV01_Lanca_novos", acViewNormal, acEdit
            DoEvents
            '==== FIM ACTUALIZAR TABELA PDV ====
            
            'Aqui deves iniciar a proxima tabela
            
            '==== INICIO ACTUALIZAR TABELA xxx ====
            'apaga dados ....
            DoCmd.OpenQuery "07Apaga_Dados_ExcelTmpAgrupado", acViewNormal, acEdit
            DoEvents
            
            'abrupa
            DoCmd.OpenQuery "08Agrupar_para_ExcelTmpAgrupado", acViewNormal, acEdit
            DoEvents

            .......... e continuar igual acima
            


    Repara que o exemplo que disponibilizei a alteração das consultas podes fazer no access pelo assistente ou alterar, sem necessidade instruções de SQL diretamente no código.
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 21/7/2014, 22:16

    Fiz vários códigos para atualizar todas as bases que preciso, ficou assim:

    Código:
    Option Compare Database

    Private Sub Comando18_Click()
        
           Call AbrirRC

    End Sub
    Private Sub Comando20_Click()
        DoCmd.Close
            
    End Sub

    Function AbrirRC() As String
        
        ' Requer referencia a Microsoft Office 11 Object Library
        On Error GoTo PROC_ERR
        
        Dim fd As FileDialog
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
        
        fd.Title = "selecione o ficheiro"
        fd.Filters.Add "Ficheiro XLS", "*.xls", 1

        fd.Show
        
        If (fd.SelectedItems.Count > 0) Then
            '------inicio importação excel para sincronização
            Dim strPathFile As String, strFile As String, strPath As String
            Dim strTable As String
            Dim blnHasFieldNames As Boolean
            blnHasFieldNames = True
            strPathFile = fd.SelectedItems(1)
            strTable = "ExcelTmp"
          
            'apaga temporarios
            DoCmd.OpenQuery "01Apaga_Dados_ExcelTmp", acViewNormal, acEdit
            DoCmd.OpenQuery "02_1Apaga_Dados_ExcelTmpAgrupadoBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "02_2Apaga_Dados_ExcelTmpAgrupadoCEPBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "02_3Apaga_Dados_ExcelTmpAgrupadoINFORMANTES", acViewNormal, acEdit
            DoCmd.OpenQuery "02_4Apaga_Dados_ExcelTmpAgrupadoPDV", acViewNormal, acEdit
            DoCmd.OpenQuery "02_5Apaga_Dados_ExcelTmpAgrupadoPROUTOS", acViewNormal, acEdit
            DoEvents
            
            'importa para tabela local temporária
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
            DoEvents
            
            'agrupa e lança nas tabelas temporarias
            DoCmd.OpenQuery "03_1Agrupar_para_ExcelTmpAgrupadoBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "03_2Agrupar_para_ExcelTmpAgrupadoCEPBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "03_3Agrupar_para_ExcelTmpAgrupadoINFORMANTES", acViewNormal, acEdit
            DoCmd.OpenQuery "03_4Agrupar_para_ExcelTmpAgrupadoPDV", acViewNormal, acEdit
            DoCmd.OpenQuery "03_5Agrupar_para_ExcelTmpAgrupadoPRODUTOS", acViewNormal, acEdit
            DoEvents
            
            '==== INICIO ACTUALIZAR TABELA ====
            'verifica existentes da tabela e marca com não novo na tabela temporaria
            DoCmd.OpenQuery "04_1Marca_Registos_NovosBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "04_2Marca_Registos_NovosCEPBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "04_3Marca_Registos_NovosINFORMANTES", acViewNormal, acEdit
            DoCmd.OpenQuery "04_4Marca_Registos_NovosPDV", acViewNormal, acEdit
            DoCmd.OpenQuery "04_5Marca_Registos_NovosPRODUTOS", acViewNormal, acEdit
            DoEvents
            
            'atualiza existentes
            DoCmd.OpenQuery "05_1Atualiza_ExistentesBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "05_2Atualiza_ExistentesCEPBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "05_3Atualiza_ExistentesINFORMANTES", acViewNormal, acEdit
            DoCmd.OpenQuery "05_4Atualiza_ExistentesPDV", acViewNormal, acEdit
            DoCmd.OpenQuery "05_5Atualiza_ExistentesPRODUTOS", acViewNormal, acEdit
            DoEvents
            
            'lança novos no ficheiro PDV
            DoCmd.OpenQuery "06_1Lanca_NovosBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "06_2Lanca_NovosCEPBRICK", acViewNormal, acEdit
            DoCmd.OpenQuery "06_3Lanca_NovosINFORMANTES", acViewNormal, acEdit
            DoCmd.OpenQuery "06_4Lanca_NovosPDV", acViewNormal, acEdit
            DoCmd.OpenQuery "06_5Lanca_NovosPRODUTOS", acViewNormal, acEdit
            DoEvents
            '==== FIM ACTUALIZAR TABELA PDV ====
            
            'Aqui deves iniciar a proxima tabela
            
            
            MsgBox "Operação concluída.", vbInformation, ""
            
            
        Else
            MsgBox "Não foi escolhido nenhum ficheiro", vbInformation, ""
        End If
        
    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
            


    Está rodando sem erros, agora preciso fazer um teste pra ver se está atualizando/incluindo os itens certinho!!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 21/7/2014, 22:24

    Olá,

    Muito Bem, como verificas são 12 tabelas mas se olhar-mos para um problema de cada vez conseguimos resolver.

    Caso esteja resolvido, não esquecer de dar o tópico por encerrado (que já está a ficar grande).

    Abraço
    avatar
    belker
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 16/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  belker 23/7/2014, 16:07

    ahteixeira funcionou perfeitamente.
    Muito obrigado pela ajuda.

    Vou abrir um outro tópico para uma outra questão, mas esse já está resolvido.

    Mais uma vez, obrigado!!
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Dilson 14/10/2014, 23:21

    Parabéns ahteixeira. Este tópico está com excelente didática e aprendizado.



    Nota:
    Estou realizando mudança no título para facilitar a ferramenta de buscas:
    De: Atualização automática - Access
    Para: Atualização automática na importação Access Excel
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 15/10/2014, 10:59

    Olá Dilson, obrigado pelo retorno, isto é a prova da interajuda e razão da existência deste forúm.
    Abraço

    bacano gosta desta mensagem

    DEISON
    DEISON
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 04/07/2014

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  DEISON 17/2/2015, 22:32

    Boa Noite

    Eu peguei um exemplo aqui e achei muito interessante.

    Estou querendo saber se por um acaso teria como importar duas bases diferentes.
    Sendo que uma delas a quantidade iria somar e não sobrepor.

    Tenham uma boa noite.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 18/2/2015, 18:07

    Ola Deison,
    Será melhor abrir um tópico novo.
    Pode fazer referência a este e postar o seu exemplo.
    Este está dado como resolvido.
    Ficamos aguardar.
    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 29/4/2017, 17:52

    Olá Amigos,
    Neste tópico demonstra como fazer a importação de um Excel e "sincronização" à medida que se vai importando mais ficheiros de Excel.
    Quem desejar efetuar tudo via RecordSet, recomendo o tópico abaixo (mensagem 12) contribuíção do nosso grande guru JPaulo:
    https://www.maximoaccess.com/t30006-resolvidoatualizar-tabela-do-bd-ao-importar-do-excel~

    Abraço e bons estudos com o MaximoAccess
    avatar
    Allan Silva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 07/03/2019

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Allan Silva 18/3/2019, 00:26

    Boa noite senhores e muito obrigado ahteixeira pelo ótimo exemplo.

    Depois de algum tempo estudando e alterando os códigos e consultas para se encaixar ao meu projeto, tive exito na importação dos dados.
    Porem, quando inicio a importação aparecem mensagens para confirmar se desejo realmente continuar com processo, como ilustrado na foto abaixo (aparecem nesta exata ordem da imagem).

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Abas_d10

    Como são diversas vezes que tenho que confirmar, se torna um pouco incomodo. Há alguma do processo ocorrer sem necessitar dessas confirmações.
    Aceito ideias e sugestões de todos.
    Agradeço desde já.

    Resolvi momentaneamente com o código:
    Código:
    Private Sub Btn_Importar_Click()

    DoCmd.SetWarnings False
           Call ImportarPlanilhaOrca
    DoCmd.SetWarnings True

    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 26/9/2019, 08:19

    Olá a todos,

    Allan Silva, é isso mesmo.
    Obrigado pela partilha, outro membro pode ter a mesma dúvida.

    cheers
    avatar
    Romildo luz
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 18/10/2023

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Romildo luz 25/11/2023, 01:26

    Duvida referente ao caso resolvido, para aplicar de outra forma.
    Para o caso em questão, fui atendido parcialmente. Tenho um processo de arquivamento que requer atualização com novos registros. Em vez de solicitar a abertura do arquivo, já tenho o caminho e a pasta do Excel onde as informações para atualização estão armazenadas. Além disso, esse arquivo do Excel contém outros arquivos e o arquivo que necessito se chama novo_atualizar.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Alvaro Teixeira 30/11/2023, 11:29

    Olá Romildo Luz,
    Seja bem-vindo ao fórum.

    Então talvez seja melhor criar um tópico novo e colocar o que tem feito e relatar a sua dúvida.

    Abraço

    Romildo luz gosta desta mensagem


    Conteúdo patrocinado


    [Resolvido]Atualização automática na importação Access Excel - Página 1 Empty Re: [Resolvido]Atualização automática na importação Access Excel

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 01:12