MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Não duplicar importação de dados

    avatar
    jrm
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 124
    Registrado : 10/08/2012

    [Resolvido]Não duplicar importação de dados Empty [Resolvido]Não duplicar importação de dados

    Mensagem  jrm em 9/11/2020, 08:20

    Bom dia caros mestres

    Estou precisando da vossa ajuda, para implementar uma forma de não duplicar informação na BD.
    A BD é alimentada através da importação de ficheiros excel que eu vou recebendo, na tabela onde são guardados os dados existe um campo que é dataatual, o que eu pretendia é que ao importar essa data atual fosse a data de criação do ficeiro excel e não a data da importação do ficheiro.

    Isto ja aconteceu, em dias que eu não estou no trabalho a inorfmação não ser importada e quando eu chego vou importar, no entanto tambem ja aconteceu o inverso ter sido importada e eu volto a importar e duplico tudo, como na informação não existe um campo chave que possa diferir as linhas fica dificil saber se foi duplicado.

    para evitar isso bastava que eu tivesse uma coluna com a data de criação do ficheiro excel importado ,mas não sei como ler essa informação do excel, podem ajudar?

    Obrigado
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 354
    Registrado : 28/10/2010

    [Resolvido]Não duplicar importação de dados Empty Re: [Resolvido]Não duplicar importação de dados

    Mensagem  zcarloslopes em 9/11/2020, 11:25

    Boa tarde jrm,

    Para pegar a data da criação e modificação de um ficheiro.
    Código:
    Dim oFSO As Object
    Dim oF As Object

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oF = oFSO.GetFile("C:\teste.xls")

    MsgBox oF.DateCreated

    MsgBox oF.DateLastModified

    Set oF = Nothing
    Set oFSO = Nothing

    jrm gosta desta mensagem

    avatar
    jrm
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 124
    Registrado : 10/08/2012

    [Resolvido]Não duplicar importação de dados Empty Re: [Resolvido]Não duplicar importação de dados

    Mensagem  jrm em 10/11/2020, 07:39

    Obrigado pela resposta rapida, vou testar e adaptar e depois digo algo.
    avatar
    jrm
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 124
    Registrado : 10/08/2012

    [Resolvido]Não duplicar importação de dados Empty Re: [Resolvido]Não duplicar importação de dados

    Mensagem  jrm em 10/11/2020, 07:54

    Bom Dia ZCarlos

    Mais uma vez obrigado, mas não sei o que esta a correr mal, coloquei este codigo para testar:
    Sub teste()

    Dim oFSO As Object
    Dim oF As Object

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oF = oFSO.GetFile("C:\Users\jorgen\Desktop\teste.xlsx")

    MsgBox oF.DateCreated

    MsgBox oF.DateLastModified

    Set oF = Nothing
    Set oFSO = Nothing
    End Sub

    e não consegue ler o ficheiro da erro na linha ofso.getfile (o caminho esta correcto e o ficheiro existe nessa pasta
    e tambem tenho activos a livraria de objectos office e do acess, o que será que esta a correr mal?
    avatar
    jrm
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 124
    Registrado : 10/08/2012

    [Resolvido]Não duplicar importação de dados Empty Re: [Resolvido]Não duplicar importação de dados

    Mensagem  jrm em 10/11/2020, 08:02

    Ja consegui era basico,  distração, o espaço no nome da pasta.
    Obrigado mais uma vez


    Última edição por jrm em 10/11/2020, 08:21, editado 1 vez(es)

    jrm gosta desta mensagem

    avatar
    jrm
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 124
    Registrado : 10/08/2012

    [Resolvido]Não duplicar importação de dados Empty Re: [Resolvido]Não duplicar importação de dados

    Mensagem  jrm em 10/11/2020, 08:19

    Bom dia Mais uma vez

    uso o seguinte comando para eliminar os dados de uma tabela temp:
    DoCmd.OpenQuery "EliminaTemp", acViewNormal, acEdit (consulta de eliminação existente)

    depois uso este para importar os dados do excel para esta tabela
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames

    e por fim este para adicionar a tabela base:
    DoCmd.OpenQuery "acrescentabase", acViewNormal, acEdit (consuta de acrescimo existente)

    Com a ajuda anterior já consigo ter a data de criação do ficheiro numa Box, o meu problema agora é:

    Como faço para passar essa data para uma coluna "data" da tabela temporaria e coloca-la em todos os registos importados?

    Pode ajudar mais uma vez sff

    Obrigado

      Data/hora atual: 29/11/2020, 16:26