Alvaro Teixeira Seg 21 Jul 2014, 19: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_codeCrias 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.